さまざまな方法でファイルを再帰的に検索する
ディレクトリ構造内でファイルを再帰的に検索する場合、glob() は最も効率的ではない可能性があります。包括的なアプローチ。この記事では、再帰的なファイル リストを実現するための代替方法について説明します。
pathlib.Path().rglob()
pathlib モジュールでは、pathlib.Path().rglob( )、一致するファイルを再帰的に検索します。例:
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
glob.glob() with recursive=True
3.5 より前の Python バージョンの場合、glob.glob() は再帰オプションを提供します。例:
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
os.walk()
古い 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() メソッドはすべてのサブディレクトリを反復処理し、fnmatch.filter() は単純なパターン マッチングを適用します。このアプローチは、pathlib と比較してオーバーヘッドが低いため、大規模なディレクトリの場合により効率的である可能性があります。
以上がPython でファイルを再帰的に検索する最良の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。