Python 从文件中删除[';';]格式

Python 从文件中删除[';';]格式,python,renaming,mutagen,Python,Renaming,Mutagen,我必须在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)) tracknumb

我必须在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']的文件名格式,这并不方便


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

只需替换字符串即可

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]

多亏了大家,问题才得以解决。我想,同样的情况下,人们可能会对这个脚本感兴趣:

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:我做了一个小编辑,以消除与文件格式不兼容的问号问题

您方便的名称是什么?你能把你想要的东西作为输出吗?我假设
tracknumber
tracktitle
都返回列表,对它们调用
str
,只是把括号括在引号里。将
newtitle
this------>
newtitle=''.join([tracknumber.pop(),tracktitle.pop()])
,假设标题始终是该列表中的唯一项目,但非常感谢!这正是我要找的!我不知道这样做是可能的。否则,我想它应该是列表中唯一的项目,因为这些项目是从曲目的元数据中提取的,并且我无法想象在一个曲目名称中有几个项目的可能性。谢谢你,我考虑过这种方式,但我想保留这些字符,以防它们嵌入歌曲中,例如“她的歌”只是让它更具体,现在就试试谢谢,我选择了Dmitry解决方案,因为它更紧凑,一行代码而不是4行代码,这是说我也感谢您的输入!