1. 程式人生 > >【Python】三種遍歷檔案目錄的方法

【Python】三種遍歷檔案目錄的方法

#coding:utf-8

# 方法1:遞迴遍歷目錄

import os
def visitDir(path):
    li = os.listdir(path)
    for p in li:
        pathname = os.path.join(path,p)
        if not os.path.isfile(pathname):    #判斷路徑是否為檔案,如果不是繼續遍歷
            visitDir(pathname)
        else:
            print pathname

if __name__ == "__main__":
    path = r"/Users/GaoHongxing/Desktop"
visitDir(path)
          
# 方法2:函式遞迴 os.path.walk()

import os, os.path

def visitDir(arg, dirname, names):
    for filepath in names:
        print os.path.join(dirname, filepath)
        
if __name__ == "__main__":
    path = r"/Users/GaoHongxing/Desktop"
    os.path.walk(path,visitDir,())


# 方法3: 函式遞迴os.walk()
import os

def visitDir(path):
    for root, dirs, files in os.walk(path):
        for filepath in files:
            print os.path.join(root, filepath)
            
if __name__ == "__main__":
    path = r"/Users/GaoHongxing/Desktop" 
    visitDir(path)  

"""
os.path.walk()與os.walk()產生的檔名列表不同:
os.walk() 只產生檔案路徑
os.path.walk()    產生目錄樹下的目錄路徑和檔案路徑
"""

相關推薦

Python檔案目錄方法

#coding:utf-8 # 方法1:遞迴遍歷目錄 import os def visitDir(path): li = os.listdir(path) for p in li

leetcode迴文連結串列(Palindrome Linked List)python方法

題目連結 時間複雜度O(N),空間複雜度O(N) class ListNode: def __init__(self, x): self.val = x se

java集合的方法

(1):使用聚合操作 在JDK 8和更高版本中,迭代集合可以通過獲取流並對其執行聚合操作。聚合操作通常與lambda表示式結合使用,使程式設計更具表現力,使用較少的程式碼行。以下程式碼順序遍歷一組形狀並打印出紅色物件: myShapesCollection.stream()

圖解資料結構 一組動畫徹底理解二叉樹

二叉樹的遍歷是指從根結點出發,按照某種次序依次訪問二叉樹中所有結點,使得每個結點被訪問一次且僅被訪問一次。 在二叉樹的遍歷中存在三種較為常用的遍歷方式:前序遍歷、中序遍歷、後序遍歷。接下來我將嘗試著用三組動畫向讀者詳細的介紹這三種遍歷方式的邏輯思路,希望讓讀者看到任何的二叉樹都能在腦海中快速的勾勒出動畫。

演算法模板二叉樹的方式,以及根據兩方式建樹

前言:今年九月份的PAT考試就栽在這“兩種遍歷建樹”上了,剛好沒看,剛好考到。作為自己的遺憾,今日碼完,貼在這裡留個紀念,希望能給自己警醒與警鐘。 簡要概括: 1、二叉樹的三種遍歷方式分別是 先序(先根)遍歷PreOrder,中序(中根)遍歷InOrder,後序(後根

二叉樹的確定 :

已知二叉樹的後序和中序來確定二叉樹 題目【L2-006 樹的遍歷】 #include<bits/stdc++.h> using namespace std; const int N

Python --- 二叉樹的層序建立與

隊列 方式 span 等於 不存在 pos 同時 紅色 ret 二叉樹(Binary Tree)時數據結構中一個非常重要的結構,其具有。。。。(此處省略好多字)。。。。等的優良特點。 之前在刷LeetCode的時候把有關樹的題目全部跳過了,(ORZ:我這種連數據結構都不會的

Python 2實現檔案複製的方法

#coding:utf-8 # 方法1:使用read()和write()模擬實現檔案拷貝 # 建立檔案hello.txt src = file("hello.txt", "w") li = ["H

集合的方式

叠代器 whl print 循環 下一個 sys 三種 iterator for 1、for循環 代碼實現: for(int i=0;i<list.size();i++){ product p=list.get(i); System.println(p); } 2、叠

二叉樹求第序列

btree har dex logs 由於 bsp int tin 推理 // 樹的結點的結構: struct TreeNode{ TreeNode* LChild; TreeNode* RChild; char data; };

二叉樹的簡單版

putchar 中序遍歷 ret pri pos 後續遍歷 同學 alloc erro 同學突然向我問二叉樹的三種遍歷代碼。數據結構剛剛學了,自己很吃力的敲了出來。 和老師演示的代碼有很大差距。 #include <stdio.h>#include <

Python個例子教你寫代碼

位數 mage int 1-1000 image end src orm origin 這篇文章包括用Python編寫的斐波那契數列,三位數的水仙花數和百錢買百雞的基礎代碼: (一)斐波那契數列: ‘‘‘ def hanshu(n): n_1 = 1 n_2 =

List集合方法

++ next string highlight gpo equal 方法 arraylist bject 一、通過叠代來遍歷List集合,可以刪除List集合中的元素。 import java.util.ArrayList; import java.util.Itera

談談vector容器的方法

封裝 font pri using != 說明 ace rac 三種 說明:本文僅供學習交流。轉載請標明出處。歡迎轉載! ? ? ? ? ?vector容器是最簡單的順序容器,其用法相似於數組。實際上vector的底層實現

set的

iterator pos obj .... hset ext println asn else if 對 set 的遍歷 1.叠代遍歷: Set<String> set = new HashSet<String>(); Iterator&l

二叉樹的非遞歸實現

statistic 結束 定義 style 思路 system 兩個 tor tool 1.二叉樹前序遍歷的非遞歸實現 * 實現思路,先序遍歷是要先訪問根節點,然後再去訪問左子樹以及右子樹,這明顯是遞歸定義,但這裏是用棧來實現的 *

python小白之路(特性語法、公共方法、引用)

是否 比較 類型 之路 鍵值 oat 列表 函數 dict 一、遍歷通過for。。。in。。。的語法結構,我們可以遍歷字符串、列表、元組、字典等數據結構。1、字符串遍歷a_str = "hello world"for char in a_str:prin

公交車站撿垃圾之二叉樹的方法

info 表示 圖片 com 沒有 inf 不能 image 思考 # 二叉樹的遍歷 今天下午看了二叉樹的三種遍歷方式,雖然能寫出代碼,但是理解可能不太到位,感覺很容易忘,所以想到一個形象的方法,把每個節點當作公交車站,而訪問節點則是在這個公交車站撿垃圾,右子樹和左子樹則

列表裏面序號和值的方法

開始 clas pri border padding span style %s pytho list = [‘html‘, ‘js‘, ‘css‘, ‘python‘] # 方法1 # 遍歷列表方法1:‘ for i in list: print("序號:%s

資料結構作業——————二叉樹的方式

資料結構作業: 二叉樹的建立 三種遍歷方式 L:遍歷左子樹 D:訪問根節點 R:遍歷右子樹 DLR:先序遍歷 LDR:中序遍歷 LRD:後序遍歷 #include<bits/stdc++.h> using namespace std