ディレクトリ構造を再帰的に走査してすべてのファイルをリストすることは、一般的なプログラミングのニーズです。これに関連して、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 サイトの他の関連記事を参照してください。