os.walk() 方法用于通過在目錄樹種游走輸出在目錄中的文件名均驶,向上或者向下锦茁。
簡述
os.walk()的用法
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
參數(shù)的理解
- top -- 是你所要遍歷的目錄的地址, 返回的是一個(gè)三元組(root,dirs,files)休弃。
root 所指的是當(dāng)前正在遍歷的這個(gè)文件夾的本身的地址
dirs 是一個(gè) list 疟赊,內(nèi)容是該文件夾中所有的目錄的名字(不包括子目錄)
files 同樣是 list , 內(nèi)容是該文件夾中所有的文件(不包括子目錄) - topdown --可選娄昆,為 True,則優(yōu)先遍歷 top 目錄,否則優(yōu)先遍歷 top 的子目錄(默認(rèn)為開啟)。如果 topdown 參數(shù)為 True侮攀,walk 會遍歷top文件夾,與top 文件夾中每一個(gè)子目錄厢拭。
onerror -- 可選兰英,需要一個(gè) callable 對象,當(dāng) walk 需要異常時(shí)供鸠,會調(diào)用畦贸。 - followlinks -- 可選,如果為 True楞捂,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實(shí)際所指的目錄(默認(rèn)關(guān)閉)薄坏,如果為 False,則優(yōu)先遍歷 top 的子目錄寨闹。
文件結(jié)構(gòu)如下:
image.png
示例代碼1:
import os
targetDir = 'D:\Test1'
for root, dirs, files in os.walk(targetDir):
print('root = %s, dirs = %s, files = %s' %(root,dirs,files))
輸出結(jié)果:
root = D:\Test1, dirs = ['Test1-1', 'Test1-2'], files = ['testfile.txt']
root = D:\Test1\Test1-1, dirs = ['Test1-1-1'], files = ['test1-1file.txt']
root = D:\Test1\Test1-1\Test1-1-1, dirs = [], files = ['test1-1-1file.txt']
root = D:\Test1\Test1-2, dirs = [], files = ['test1-2file.txt']
[Finished in 0.6s]