0

我必须在 Flac 中翻录我的 cd 库以将它们存档,长话短说,翻录时的文件名不包括曲目编号,这在我的音频播放器上播放时会破坏播放列表顺序。

为了省去手动重命名它们的麻烦,我今天早上写了一个小脚本:

import os
from mutagen.flac import FLAC

chemin= r'E:\CD\CdName'

for titre in os.listdir(chemin):
    track= FLAC(os.path.join(chemin, titre))
    tracknumber = track.tags["tracknumber"]
    tracktitle= track.tags["title"]
    newtitle= str(tracknumber) + " " + str(tracktitle)
    os.rename(os.path.join(chemin,titre),os.path.join(chemin,str(newtitle)))

抱歉,这不是最干净的代码,我还是 python 的新手。

它可以正常工作,只是它在曲目标题中具有格式 ['text'],这会导致文件名类似于 ['01'] ['TrackName'] 的内容,这不方便。

因此,我想知道是否有可能在曲目名称中删除这种不需要的格式。

4

2 回答 2

0

只需更换字符串。

tracktitle = "['01'] ['TrackName']"
tracktitle = tracktitle.replace("[","").replace("]","")
tracktitle = tracktitle.replace("'", "")

这将输出“01 TrackName”

编辑:
编辑以适应评论

tracktitle = "['01'] ['TrackName']"
tracktitle = tracktitle.replace("'] ['", " ")
tracktitle = tracktitle[2:]
tracktitle = tracktitle[0:-2]
于 2017-06-05T10:45:06.837 回答
0

由于大家都解决了问题,我认为拥有此脚本的人可能会对同一案例感兴趣:

import os
from mutagen.flac import FLAC

chemin= r'C:\XXXXX' #your path here

for titre in os.listdir(chemin):
    track= FLAC(os.path.join(chemin, titre))
    tracknumber = track.tags["tracknumber"]
    tracktitle= track.tags["title"]
    newtitle= " - ".join([tracknumber.pop(),tracktitle.pop()])+".flac"
    newtitle = newtitle.replace("?","")
    os.rename(os.path.join(chemin,titre),os.path.join(chemin,str(newtitle)))

ps:我做了一个小编辑以消除与文件格式不兼容的问号问题

于 2017-06-05T11:26:36.100 回答