Column

Python
[Python]ディレクトリ内の特定の拡張子のファイルの名前と数を再帰的に探索し表示する方法
2023.04.13

こんにちは、齋藤です。
今回はディレクトリ内の特定の拡張子のファイルの名前と数を再帰的に探索し表示するPythonコードを紹介します。
Pythonの標準ライブラリosとfnmatchを使用して、指定されたディレクトリ内の再帰的に特定の拡張子を検索することができます。
以下のコードは、指定されたディレクトリ内のすべてのサブディレクトリを再帰的に検索し、特定の拡張子を持つファイルのパスをリストで返す関数です。ここでは、拡張子”.txt”を持つファイルを検索しています。
この関数を以下のように呼び出すことで、指定されたディレクトリ内のすべてのサブディレクトリを再帰的に検索し、拡張子”.txt”を持つファイルのパスをリストで取得することができます。
このコードは、指定されたディレクトリ内のすべてのサブディレクトリを再帰的に検索し、拡張子”.txt”を持つファイルのパスをリストで取得します。取得されたファイルのリストはfiles変数に保存されます。

import os
import fnmatch

def find_files(root_dir, extension):
    """
    Recursively find all files in root_dir and its subdirectories with given extension.
    """
    matches = []
    for root, dirnames, filenames in os.walk(root_dir):
        for filename in fnmatch.filter(filenames, f"*.{extension}"):
            matches.append(os.path.join(root, filename))
    return matches

root_dir = "/path/to/root/directory"
extension = "txt"

files = find_files(root_dir, extension)
print(files)
print(len(files))