首頁 >後端開發 >Python教學 >如何使用Python遞歸列出目錄中的所有檔案?

如何使用Python遞歸列出目錄中的所有檔案?

Barbara Streisand
Barbara Streisand原創
2024-12-19 17:21:10842瀏覽

How Can I Recursively List All Files in a Directory Using Python?

遞歸迭代檔案

遞歸遍歷目錄結構以列出所有檔案是常見的程式需求。在這種情況下,讓我們探討如何在 Python 中有效地完成此任務。

一種方法是使用 Python 3.5 中引入的 pathlib.Path().rglob() 方法。它提供了一種便捷的方法來識別目錄及其子目錄中與特定模式匹配的所有檔案:

from pathlib import Path

for path in Path('src').rglob('*.c'):
    print(path.name)

如果您喜歡使用glob 模組,您可以利用其glob() 函數和recursive=True參數:

from glob import glob

for filename in glob('src/**/*.c', recursive=True):
    print(filename)

另一個選項,與舊的Python 版本相容,涉及使用os.walk()進行遞歸遍歷和fnmatch.filter() 用於模式匹配:

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))

由於與pathlib 模組相關的開銷較低,os.walk() 技術在檔案數量較多的情況下可能會更快。

無論您選擇哪種方法,這些方法都會有效地幫助您遞歸地識別和列出指定目錄及其子資料夾中的檔案。

以上是如何使用Python遞歸列出目錄中的所有檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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