os.walk()
?是一個非常有用的函數,用于在Python中遍歷文件夾樹。它返回一個生成器,該生成器在每次迭代時返回一個包含三個元素的元組:(當前文件夾的路徑,文件夾中的子文件夾的列表,文件夾中的文件的列表)
。這個函數對于遞歸地操作文件系統,如查找、文件重命名或移動文件特別有用。
下面是一個?os.walk()
?的使用例子:
import osfor root, dirs, files in os.walk('..', topdown=True):for name in files:print(os.path.join(root, name))for name in dirs:print(os.path.join(root, name))
參數說明:
root
:當前正在遍歷的文件夾的路徑。dirs
:當前root
文件夾中所有的子文件夾組成的列表。files
:當前root
文件夾中所有的非目錄文件組成的列表。
選項參數說明:
topdown
(可選):設置為?True
(默認)時,walk
?會以自頂向下的方式遍歷子文件夾;如果設置為?False
,則會自底向上遍歷。onerror
(可選):一個為一個產生器(或者一個函數),當一個錯誤發生時,它可以被調用;默認 None。followlinks
(可選):設置為?True
?時,os.walk()
?會在遍歷到符號鏈接時繼續跟蹤,直到遇到一個非符號鏈接的目錄;默認 False。
請注意,os.walk()
?不保證遍歷的順序。如果需要按特定的順序遍歷文件系統,應當在遍歷時手動排序?dirs
?和?files
?列表。
使用?os.walk()
?時需要注意,由于它是自頂向下的,它會對每個目錄訪問多次,一旦訪問了其子文件夾,同時它也不會跳過任何子目錄,因此不適用于大文件夾的遍歷。
os.walk()
?是一個非常有用的功能,使得在Python中對文件系統進行復雜的操作成為可能。