指定したディレクトリ内のすべてのwavファイルのパスを再帰的に取得してtxtファイルに保存する

開発環境

詳細

以下のコードで指定したディレクトリ内のwavファイルのパスを一覧にしたテキストファイルが出力されます

# 指定したディレクトリ内のすべてのファイルのパスを再帰的に取得し、txtファイルに保存するスクリプト

import os
import sys

def get_file_paths(directory):
    file_paths = []

    for root, directories, files in os.walk(directory):
        for filename in files:
            if filename.endswith(".wav"):
                filepath = os.path.join(root, filename)
                file_paths.append(filepath)

    return file_paths

def save_file_paths_to_txt(file_paths, output_file):
    with open(output_file, 'w', encoding='utf-8') as file:
        for path in file_paths:
            file.write(path + '\n')

    print(f"File paths saved to {output_file}")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Please provide the directory path as a command-line argument.")
        sys.exit(1)

    directory = sys.argv[1]  # コマンドライン引数から検索対象のディレクトリを取得
    output_file = "file_paths.txt"  # 出力するテキストファイル名を指定

    file_paths = get_file_paths(directory)
    save_file_paths_to_txt(file_paths, output_file)

出力は以下のようになります

jvs\jvs001\falset10\wav24kHz16bit\jvs001_falset10_jvs001_falset10_BASIC5000_0235.wav
jvs\jvs001\falset10\wav24kHz16bit\jvs001_falset10_jvs001_falset10_BASIC5000_0408.wav
jvs\jvs001\falset10\wav24kHz16bit\jvs001_falset10_jvs001_falset10_BASIC5000_1140.wav
jvs\jvs001\falset10\wav24kHz16bit\jvs001_falset10_jvs001_falset10_BASIC5000_1356.wav