os.walk() 方法簡單介紹
- 主要用來遍歷一個目錄內各個子目錄和子文件
- 是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。
方法參數介紹
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
- top :是你所要遍歷的目錄的地址, 返回的是一個三元組 (dirpath, dirnames, filenames)
- topdown :可選,True則優先遍歷 top 文件夾,與top 文件夾中每一個子目錄;否則優先遍歷 top 的子目錄(默認為開啟)。
- onerror :可選,需要一個 callable 對象,當 walk 需要異常時,會調用
- followlinks :可選,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實際所指的目錄(默認關閉),如果為 False,則優先遍歷 top 的子目錄
返回的三元組介紹
dirpath :string,代表目錄的路徑,
dirnames :list,包含了dirpath下所有子目錄的名字。
filenames :list,包含了非目錄文件的名字。
簡單代碼實現
path = os.getcwd() for dirpath, dirnames, filenames in os.walk(path): print(dirpath) print(dirnames) print(filenames)
測試結果
F:\pylearn\learn ['test'] ['bytes_str.py', 'get_file_md5_test.py', 'List_Tuple_Learning.py', 'Number_Learning.py', 'os_walk.py', 'String_Learning.py', '__init__.py'] F:\pylearn\learn\test [] ['test.py', '__init__.py']
包含知識點
可以看到當你top路徑下還有目錄時,是會遞歸查詢的
上面的代碼等價於下面的代碼,當然不建議這樣寫,因為不夠清晰明了
for data in os.walk(path): print(data[0]) print(data[1]) print(data[2])
