首頁 >後端開發 >Python教學 >如何使用「pathlib」、「glob」和「os.walk」在 Python 中遞歸查找檔案?

如何使用「pathlib」、「glob」和「os.walk」在 Python 中遞歸查找檔案?

DDD
DDD原創
2024-12-11 20:16:15312瀏覽

How Can I Recursively Find Files in Python Using `pathlib`, `glob`, and `os.walk`?

遞歸查找檔案:探索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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn