2017-06-05 17 views
0

再生するときにプレイリストの順序を捨てているリッピングされたトラック番号がファイル名に含まれていないと、ファイルをアーカイブするために私のCDライブラリをFlacでリッピングする必要があります私のオーディオプレーヤーで。手動で私の名前を変更する手間を省くファイルから['']フォーマットを削除する

は今朝小さなスクリプトを書いた:それはきれいなコードではありません

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で初心者です。

トラックタイトルに['01'] ['TrackName']のような形式の['text']という形式があり、便利ではないという点を除いて、その目的はうまくいきます。

この結果、トラック名でこの望ましくないフォーマットを取り除く可能性があるのか​​どうか疑問に思っていました。

+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

Polymerさん、ありがとうございました。私はこの方法を考えましたが、「Her's song」のように、歌に埋め込まれた場合に備えて、これらのキャラクターを保ちたいと思っていました。 –

+0

もっと具体的にして、今すぐ試してください – Polymer

+0

ありがとうたくさんのポリマー、ドミトリーのソリューションは、4つではなくコードラインでよりコンパクトになっています。これはあなたの意見にも感謝しています。 –

0

に合わせて、私はそれは、人々の関心も思いました同じ場合にこのスクリプトを持っている:

ps:ファイル形式に対応していない疑問符の問題を取り除くために小さな編集を行った

関連する問題