Scripting

將 m3u 播放列表導出到目錄,按它們出現在播放列表中的順序

  • April 2, 2012

有一種方法可以將 m3u 播放列表同步到目標目錄。

如何處理列表並對輸出進行編號,以便對文件進行排序以匹配播放列表順序?

例如 m3u:

/music/song-yellow.mp3
/music/song-red.mp3
/music/song-blue.mp3

將複製/同步播放列表內容,將文件重命名為:

/dest-path/01-song-yellow.mp3
/dest-path/02-song-red.mp3
/dest-path/03-song-blue.mp3

這樣我就可以建立混音帶播放列表並為人們複製它們。

任何建議表示讚賞。

嘗試這樣的事情:

#!/usr/bin/python

FILE = '/home/my-home/my-playlist.m3u'
DIR = '/some-target-directory'

import os.path, shutil, sys

for i, s in enumerate(open(FILE)):
   s = s.rstrip()
   try:
       shutil.copy(s, os.path.join(DIR, '%03d-%s' % (i+1, os.path.basename(s))))
   except IOError, e:
       sys.stderr.write('warning: %s\n' % e)

# End of file.

顯然,設置FILEDIR滿足您的需要。很抱歉,為此使用 Python 並為此感到抱歉 - 它有助於不必逃避所有那些 shell 喜歡附加特殊含義的字元。

該腳本不會因 I/O 錯誤而失敗,它只會輸出警告。除此之外,沒有完整性檢查(如您所見)。它也不排除 M3U 註釋。不過,它會很高興地複制你扔給它的任何字元,除了NULs 和斜杠,它們是文件系統級別的特殊字元。

引用自:https://unix.stackexchange.com/questions/29799