はじめに
カーオーディオの曲順が思った通りにならないってことはないでしょうか?
ファイル名順になってほしいのに、よく分からない順番で再生されてしまいます。
実は多くのカーオーディオでは、USBメモリに書き込んだ順番になるようです。
それで今回は、Pythonを使って、ファイル名順にファイルを書き込んで、順番をそろえるプログラムを作りたいと思います。
プログラム
ファイルのパスは、ご利用の環境に合わせて調整してください。
やっていることは簡単。USBメモリの内容をいったんPCにコピー、USBメモリをクリア、ファイル名順にファイルをコピーするだけです。
import os import shutil # 音楽ファイルがあるディレクトリ(一時フォルダとしても使用) tmp_dir = 'C:/tmp' # USBメモリのパス usb_path = 'D:/' # 音楽ファイルの拡張子 extensions = ['.mp3', '.wav', '.flac', '.aac'] # USBメモリの内容を一時フォルダにコピー for item in os.listdir(usb_path): s = os.path.join(usb_path, item) d = os.path.join(tmp_dir, item) if os.path.isdir(s): shutil.copytree(s, d, False, None) else: shutil.copy2(s, d) # USBメモリをクリア for item in os.listdir(usb_path): s = os.path.join(usb_path, item) if os.path.isdir(s): shutil.rmtree(s) else: os.remove(s) # ファイルとディレクトリを走査 for root, dirs, files in os.walk(tmp_dir): # ファイルをアルファベット順にソート files.sort() for i, file in enumerate(files): if os.path.splitext(file)[1] in extensions: # USBメモリにコピー destination = os.path.join(usb_path, os.path.relpath(root, tmp_dir)) os.makedirs(destination, exist_ok=True) shutil.copy(os.path.join(root, file), os.path.join(destination, file))
まとめ
いかがだったでしょうか?同じような仕組みのファイルをソートするプログラムもありますが、
このコードだけで、同じことが実現出来てしまいます。お試しあれ!!