os.listdir
フォルダーの内容を取得しos.path.splitext
、ベース名を決定するために使用します。
import os
wavs = set(os.path.splitext(fn)[0] for fn in os.listdir('/path/to/wavs'))
mp3s = set(os.path.splitext(fn)[0] for fn in os.listdir('/path/to/mp3s'))
must_convert = wavs - mp3s
複数のフォルダーの mp3 と wav を (再帰的にではなく) 照合する場合は、ベース名と完全なファイル名の両方を保存する必要があります。
import os,collections
files = collections.defaultdict(dict)
for d in ['/path/to/wavs', '/more/wavs', '/some/mp3s', '/other/mp3s']:
for f in os.listdir(d):
basename,ext = os.path.splitext(f)
files[ext][basename] = os.path.join(d, f)
files_to_convert = [fn for basename,fn in files['.wav'].items()
if basename not in files['.mp3']]