概要
タイトル通り、あるディレクトリ以下にある、全てのオーディオファイルと、オーディオファイルを含む全ディレクトリを取得するスクリプトになります。
深いディレクトリ構造でも、 オーディオファイルが含まれるディレクトリを列挙したり、全オーディオファイルを列挙したりすることができます。
実装
import os import glob from itertools import chain from pprint import pprint def search_audio_dirs_and_files( dirpath, exts = ["flac", "mp3", "m4a", "aac", "wav"] ): audiodirpaths = [] audiofilepathes = [] for root, dirs, files in os.walk(dirpath): tmp_audiofilepathes = list(chain.from_iterable([list(glob.glob(f"{root}/*.{ext}")) for ext in exts])) if len(tmp_audiofilepathes) > 0: audiofilepathes.append(tmp_audiofilepathes) audiodirpaths.append(root) return audiodirpaths, audiofilepathes #files = os.listdir(p_dirpath) #dirs = [f for f in files if os.path.isdir(os.path.join(p_dirpath, f))] p_dirpath = "C:/Users/Hiro/Music/Larc" audiodirpaths, audiofilepathes = search_audio_dirs_and_files(p_dirpath) pprint(audiodirpaths) pprint(audiofilepathes)