ファイルの場所がシステムごとに異なる場合、Python でファイルを検索するのが困難になることがあります。幸いなことに、Python には、ディレクトリを横断してファイルを簡単に見つけることができる os.walk モジュールが用意されています。
ファイル検索用の os.walk
os.walk はジェネレーターを作成しますディレクトリとそのサブディレクトリを反復処理し、反復ごとに 3 つのタプルを生成するオブジェクト:
単一ファイルの検索
検索するには特定のファイルが最初に出現する場合は、生成されたタプルを反復処理して、ファイル名がファイルのリストにあるかどうかを確認します:
<code class="python">import os def find(name, path): for root, dirs, files in os.walk(path): if name in files: return os.path.join(root, name)</code>
ファイルのすべての出現箇所の検索
ファイルの出現箇所をすべて検索するには、一致を保存するリストを作成します。
<code class="python">def find_all(name, path): result = [] for root, dirs, files in os.walk(path): if name in files: result.append(os.path.join(root, name)) return result</code>
一致するファイル パターン
一致するファイルを検索するにはパターンの場合は、fnmatch モジュールを使用します:
<code class="python">import os, fnmatch def find(pattern, path): result = [] for root, dirs, files in os.walk(path): for name in files: if fnmatch.fnmatch(name, pattern): result.append(os.path.join(root, name)) return result find('*.txt', '/path/to/dir')</code>
以上がPython を使用して複数のディレクトリにまたがるファイルを効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。