1. ホーム
  2. python

[解決済み] Pythonでファイルを検索する

2022-05-10 11:38:12

質問

各ユーザーのマシンで異なる場所にある可能性のあるファイルを持っています。このファイルの検索を実装する方法はありますか?ファイル名と検索するディレクトリツリーを渡す方法はありますか?

どのように解決するのですか?

os.walk が答えで、これは最初のマッチを見つけます。

import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name)

そして、これはすべてのマッチを見つけます。

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

そして、これがパターンにマッチすることになります。

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')