os模塊大全詳情html
os.walk
os.walk方法,主要用來遍歷一個目錄內各個子目錄和子文件。python
os.walk(top, topdown=True, onerror=None, followlinks=False)
能夠獲得一個三元tupple(dirpath, dirnames, filenames), spa
第一個爲起始路徑,第二個爲起始路徑下的文件夾,第三個是起始路徑下的文件。
dirpath 是一個string,表明目錄的路徑,
dirnames 是一個list,包含了dirpath下全部子目錄的名字。
filenames 是一個list,包含了非目錄文件的名字。
這些名字不包含路徑信息,若是須要獲得全路徑,須要使用os.path.join(dirpath, name).code
經過for循環自動完成遞歸枚舉htm
目錄是這樣的文件目錄結構:blog
[root@xiaoma mcw]# tree . ├── cur1.txt ├── cur2.txt ├── mcw │ ├── m1.txt │ └── m2.txt ├── test.py └── xiaoma ├── x1.txt └── x2.txt 2 directories, 7 files
(1)遞歸
import os result = os.walk("./") print(result) ------------------結果: [root@xiaoma mcw]# python test.py <generator object walk at 0x7f0e90ad17d0>
(2)os.walk是不少個元組pdo
import os result = os.walk("./") print(result) for i in result: print(i) #i表明每一個目錄以及目錄下的文件名字。 ---------------結果; [root@xiaoma mcw]# python test.py ('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt']) #當前目錄 當前目錄下的目錄,當前目錄下的文件 ('./xiaoma', [], ['x1.txt', 'x2.txt']) 子目錄以及子目錄寫的文件 ('./mcw', [], ['m2.txt', 'm1.txt']) #代碼解析:os.walk("./") 的第一個元組的第一個元素是指定目錄的名字,第二個元素當前目錄下的子目錄,第三個元素是當前目錄下的文件列表。 第二個元組的第一個元素即是子目錄的名字字符串;第二個元素就是子目錄的子目錄,若是沒有就是空列表;第三個元素就是這個子目錄下的文件列表。 第三個元組是當前目錄下的另外一個子目錄。第一個元素是子目錄的名稱字符串;第二個元素是子目錄的子目錄。第三個元素是這個子目錄下的文件列表。
(3)a,正在查詢的./目錄下的單層目錄字符串
import os result = os.walk("./") for a,b,c in result: print(a) #a全部目錄 ------------------結果: [root@xiaoma mcw]# python test.py ./ ./xiaoma ./mcw
4)b表示這個目錄下的各個子目錄列表,子目錄沒有子目錄就顯示爲空列表get
import os result = os.walk("./") for a,b,c in result: print(b) --------------結果: [root@xiaoma mcw]# python test.py ['xiaoma', 'mcw'] #查詢的目錄./下的子目錄 [] #xiaoma目錄下的子目錄 [] #mcw目錄下的子目錄
5)#c,表示各個目錄下的文件列表
import os result = os.walk("./") for a,b,c in result: print(c) #c,各個目錄文件列表 ----------------結果: [root@xiaoma mcw]# python test.py ['test.py', 'cur2.txt', 'cur1.txt'] ['x1.txt', 'x2.txt'] ['m2.txt', 'm1.txt']
6)遍歷這個目錄下全部文件,包括子目錄的文件
import os result = os.walk("./") for a,b,c in result: # a,正在查看的目錄 b,此目錄下的文件夾 c,此目錄下的文件 for item in c: path = os.path.join(a,item) # print(path) -----------------結果: [root@xiaoma mcw]# python test.py ./test.py ./cur2.txt ./cur1.txt ./xiaoma/x1.txt ./xiaoma/x2.txt ./mcw/m2.txt ./mcw/m1.txt
7)有三級以上的目錄
('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt']) ('./xiaoma', [], ['x1.txt', 'x2.txt']) ('./mcw', ['haizi'], ['m2.txt', 'm1.txt']) ('./mcw/haizi', [], [])
參考:1)https://www.cnblogs.com/JetpropelledSnake/p/8982495.html