将 m3u 播放列表导出到目录,以便它们出现在播放列表中

将 m3u 播放列表导出到目录,以便它们出现在播放列表中

有一种方法可以rsync m3u 播放列表进入目标目录。

如何处理列表并对输出进行编号,以便它对文件进行排序以匹配播放列表顺序?

例如 m3u:

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

将复制/rsync播放列表内容,将文件重命名为:

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

这样我就可以构建混音带播放列表并为人们复制它们。

任何建议表示赞赏。

答案1

尝试这样的事情:

#!/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.

显然,根据您的需要FILE进行设置。DIR对于过度使用 Python 的行为表示歉意 - 它有助于不必转义所有 shell 喜欢附加特殊含义的字符。

该脚本不会因 I/O 错误而失败,它只会输出警告。除此之外,没有健全性检查(正如您可能看到的)。它也不排除 M3U 的评论。不过,它会很乐意复制您向其输入的任何字符,但 s 和斜杠是明显的例外,NUL它们是文件系统级别的特殊字符。

相关内容