ホームページ  >  記事  >  バックエンド開発  >  Python を使用して複数のディレクトリにまたがるファイルを効率的に検索するにはどうすればよいですか?

Python を使用して複数のディレクトリにまたがるファイルを効率的に検索するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 02:35:29821ブラウズ

How can I use Python to efficiently search for files across multiple directories?

Python でファイルを検索

ファイルの場所がシステムごとに異なる場合、Python でファイルを検索するのが困難になることがあります。幸いなことに、Python には、ディレクトリを横断してファイルを簡単に見つけることができる os.walk モジュールが用意されています。

ファイル検索用の os.walk

os.walk はジェネレーターを作成しますディレクトリとそのサブディレクトリを反復処理し、反復ごとに 3 つのタプルを生成するオブジェクト:

  • root (str): 現在のディレクトリへの絶対パス
  • dirs (list): のリスト現在のディレクトリ内のサブディレクトリ
  • ファイル (リスト): 現在のディレクトリ内のファイルのリスト

単一ファイルの検索

検索するには特定のファイルが最初に出現する場合は、生成されたタプルを反復処理して、ファイル名がファイルのリストにあるかどうかを確認します:

<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 サイトの他の関連記事を参照してください。

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