はじめに
カーオーディオの曲順が思った通りにならないってことはないでしょうか?
ファイル名順になってほしいのに、よく分からない順番で再生されてしまいます。
実は多くのカーオーディオでは、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))
まとめ
いかがだったでしょうか?同じような仕組みのファイルをソートするプログラムもありますが、
このコードだけで、同じことが実現出来てしまいます。お試しあれ!!