利用Python 的os.walk() 進行遞迴目錄探索
在Python 中,遞歸遍歷目錄對於文件管理等任務來說是一項至關重要的任務和目錄操作。多功能的 os.walk() 函數為此目的提供了一個強大的解決方案。
導航目錄時,區分檔案和目錄通常很重要。然而,os.walk() 函數以不同的方式呈現資料。為了解決這個問題,需要利用額外的工具。
為了舉例說明這一點,請考慮以下程式碼片段:
import os import fnmatch for root, dir, files in os.walk("."): print(root) print("") for items in fnmatch.filter(files, "*"): print("..." + items) print("")
執行時,此程式碼會列印目前目錄的結構,然後是每個目錄中的檔案。然而,這種結構與所需的格式不一致,其中文件和目錄被明確區分。
為了實現所需的輸出,需要使用稍微修改的os.walk() 實現的替代方法:
import os for root, dirs, files in os.walk("."): path = root.split(os.sep) print((len(path) - 1) * '---', os.path.basename(root)) for file in files: print(len(path) * '---', file)
此修改後的程式碼將根目錄路徑劃分為各個組件(路徑),並計算組件的數量以確定目前目錄的深度。然後使用該深度來縮排目錄名稱和其中的文件,以實現正確的可視化。因此,最終輸出反映了目錄和檔案明確隔離的分層表示。
以上是使用Python的os.walk()函數時如何有效區分檔案和目錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!