ホームページ >バックエンド開発 >Python チュートリアル >Python を使用してディレクトリ内のすべてのファイルを再帰的に一覧表示するにはどうすればよいですか?

Python を使用してディレクトリ内のすべてのファイルを再帰的に一覧表示するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-19 17:21:10838ブラウズ

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

ファイルを再帰的に反復する

ディレクトリ構造を再帰的に走査してすべてのファイルをリストすることは、一般的なプログラミングのニーズです。これに関連して、Python でこれを効率的に実行する方法を見てみましょう。

1 つのアプローチは、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))

os.walk() 手法は、pathlib モジュールに関連するオーバーヘッドが低いため、ファイル数が多いシナリオでは高速であることが証明される可能性があります。

どのアプローチを選択しても、これらの方法は、指定したディレクトリとそのサブフォルダー内のファイルを再帰的に識別して一覧表示するのに効果的に役立ちます。

以上がPython を使用してディレクトリ内のすべてのファイルを再帰的に一覧表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。