Pythonで再帰的にファイルを検索する方法


  1. osモジュールを使用する方法:
    import os
    def find_files_recursive(directory, extension):
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith(extension):
                print(os.path.join(root, file))

    上記のコードでは、指定したディレクトリ以下のすべてのファイルを再帰的に検索し、指定した拡張子に一致するファイルのパスを表示します。

使用例:

find_files_recursive('/path/to/directory', '.txt')

上記の例では、'/path/to/directory' ディレクトリ以下のすべての .txt ファイルのパスが表示されます。

  1. globモジュールを使用する方法:
    import glob
    def find_files_recursive(directory, extension):
    pattern = f'{directory}//*{extension}'
    files = glob.glob(pattern, recursive=True)
    for file in files:
        print(file)

    上記のコードでは、指定したディレクトリ以下のすべてのファイルを再帰的に検索し、指定した拡張子に一致するファイルのパスを表示します。

使用例:

find_files_recursive('/path/to/directory', '.txt')

上記の例では、'/path/to/directory' ディレクトリ以下のすべての .txt ファイルのパスが表示されます。

これらはPythonで再帰的にファイルを検索するためのシンプルで一般的な方法です。他にもさまざまな方法がありますが、ここでは基本的な方法を紹介しました。