1. 程式人生 > 實用技巧 >用Python遍歷目錄樹

用Python遍歷目錄樹

程式碼如下:

import os

path = 'C:\\tmp\\2020-07-14'

for folderName, subfolders, filenames in os.walk(path):
    print('The current folder is ' + folderName)
    for subfolder in subfolders:
        print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
    for filename in filenames:
        print('FILE INSIDE '
+ folderName + ': '+ filename) print('')


os.walk()函式被傳入一個字串值,即一個資料夾的路徑。你可以在一個for迴圈語句中使用os.walk()函式,遍歷目錄樹,就像使用range()函式遍歷一個範圍的數字一樣。不像range(),os.walk()在迴圈的每次迭代中,返回3個值:

1.當前資料夾名稱的字串。

2.當前資料夾中子資料夾的字串的列表。

3.當前資料夾中檔案的字串的列表。


所謂當前資料夾,是指for迴圈當前迭代的資料夾。程式的當前工作目錄,不會因為os.walk()而改變。

就像你可以在程式碼for i in range(10):中選擇變數名稱i一樣,你也可以選擇前面列出來的3個字的變數名稱。我通常使用foldername、subfolders和filenames。


因為os.walk()返回字串的列表,儲存在subfolder和filename變數中,所以你可以在它們自己的for迴圈中使用這些列表。用你自己定製的程式碼,取代print()函式呼叫(或者如果不需要,就刪除for迴圈)。


參考資料

===============

《Python程式設計快速上手-讓繁瑣工作自動化》9.2 遍歷目錄樹