python語法----os.walk()函式
阿新 • • 發佈:2019-01-04
os.walk() 方法用於通過在目錄樹中游走輸出在目錄中的檔名,向上或者向下。
os.walk() 方法是一個簡單易用的檔案、目錄遍歷器,可以幫助我們高效的處理檔案、目錄方面的事情。
walk()語法格式:
os.walk(dir, topdown=True, None, followlinks=False)
引數:
dir – 是將要遍歷的目錄地址,返回一個三元組(root,dirs,files)
root 所指的是當前正在遍歷的這個資料夾的本身的地址
dirs 是一個 list ,內容是該資料夾中所有的目錄的名字(不包括子目錄)
files 同樣是 list , 內容是該資料夾中所有的檔案(不包括子目錄)
topdown
onerror – 可選,需要一個 callable 物件,當 walk 需要異常時,會呼叫。
followlinks – 可選,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連線 symbolic link )實際所指的目錄(預設關閉),如果為 False,則優先遍歷 dir 的子目錄。
例項:
建立資料夾結構如下:
test資料夾:
a資料夾:
b資料夾:
b資料夾中new_root資料夾:
b資料夾中new_root2資料夾:
然後執行程式碼測試:
import os
for root,dirs,files in os.walk(".",topdown=True):#topdown為True
print(root)
for name in files:
print(os.path.join(root,name))
for name in dirs:
print(os.path.join(root,name))
輸出:
.
.\test.py
.\a
.\b
.\a
.\a\a.txt
.\a\b.txt
. \a\c.txt
.\b
.\b\d.txt
.\b\e.txt
.\b\new_root
.\b\new_root2
.\b\new_root
.\b\new_root\new_text.txt
.\b\new_root2
.\b\new_root2\new_root2.txt
可以看到當topdown為True的時候,先遍歷了test.py所在的資料夾。
當topdown為False的時候:
import os
for root,dirs,files in os.walk(".",topdown=False):#topdown為False
print(root)
for name in files:
print(os.path.join(root,name))
for name in dirs:
print(os.path.join(root,name))
輸出:
.\a
.\a\a.txt
.\a\b.txt
.\a\c.txt
.\b\new_root
.\b\new_root\new_text.txt
.\b\new_root2
.\b\new_root2\new_root2.txt
.\b
.\b\d.txt
.\b\e.txt
.\b\new_root
.\b\new_root2
.
.\test.py
.\a
.\b
可以看到先遍歷了子資料夾和子檔案,再遍歷自身資料夾。