遞歸查找檔案:探索pathlib.rglob()、glob.glob() 和os.walk()
處理時複雜的目錄結構,遞歸地定位文件變得至關重要。可以使用各種 Python 模組和方法來簡化此任務。
一種方法是利用 Python 3.5 中引入的 pathlib.Path().rglob()。它允許直接遞歸檔案搜尋:
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
或者,glob.glob() 提供了另一種遞歸檔案清單選項:
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
此方法也支援符合以點(.) 開頭的檔案。
對於較舊的Python 版本或速度較慢時至關重要的是,os.walk()提供了一個可靠的解決方案:
import fnmatch import os matches = [] for root, dirnames, filenames in os.walk('src'): for filename in fnmatch.filter(filenames, '*.c'): matches.append(os.path.join(root, filename))
透過根據您的Python版本和效能要求選擇合適的方法,您可以有效地在目錄和目錄中遞歸列出檔案子目錄。
以上是如何使用「pathlib」、「glob」和「os.walk」在 Python 中遞歸查找檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!