2017-06-05 35 views
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']的文件名不方便。

因此,我想知道是否有可能在曲目名稱中刪除這種不需要的格式。

+0

您的便利名稱是什麼?你能發佈你想要的輸出嗎? – minatverma

+0

我假設'tracknumber'和'tracktitle'都返回列表並且在它們上調用'str'只是將括號括起來用引號括起來。使'newtitle'這個----->'newtitle =''.join([tracknumber.pop(),tracktitle.pop()])',這個假設標題永遠是該列表中的唯一項目 –

+0

謝謝很多!這正是我所期待的!我不知道這是可能的。 否則,我想它應該是列表中唯一的項目,因爲這些項目是從軌道的元數據中提取的,並且我不能想象例如在軌道名稱中包含多個項目的可能性。 –

回答

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] 
+0

感謝聚合物,我認爲這種方式,但我想保留這些字符,以防他們嵌入歌曲,例如「她的歌」 –

+0

只是使它更具體,現在嘗試 – Polymer

+0

感謝很多聚合物,我去了德米特里解決方案,因爲它是更緊湊的代碼行而不是4,這是說我很欣賞你的輸入! –

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:我做了一個小的編輯,以刪除與文件格式不兼容的問號的問題