2017-04-19 8 views
0

私はいくつかの検索をしましたが、実際にこれをコード化する方法を見ることはできません。私はPythonには初心者で、これをしようとするためにどのメソッドを使うべきかわからない。ファイル名の部分を削除

名前を変更したいファイルがあります。残念ながら、ファイル拡張子の部分は決して同じではなく、削除するだけです。

ファイル名がAC_DCのようなものです - 炎(公式ビデオ)で撃墜 - UKwVvSleM6w .MP3

任意の助けいただければ幸いです。

+0

regex ' - (\ w *).mp3'を使用すると、削除する部分文字列を見つけることができます。 [os.rename](https://docs.python.org/3/library/os.html#os.rename)を使用してファイルの名前を新しい名前に変更します – smitrp

答えて

0

これはyoutube-dlの結果のように見えるため、「ランダム」部分文字列が最もユニークな動画IDである可能性が最も高いです。私の経験では常に11文字です。しかし、ダッシュ(-)を含めることができるので、smitrpによって提案された正規表現アプローチは必ずしも機能しません。

は、私はこの "汚い" の回避策を使用します。

>>> original_name="AC_DC - Shot Down In Flames (Official Video)-UKwVvSleM6w.mp3" 
>>> new_name=original_name[:-16]+".mp3" 
>>> new_name 
'AC_DC - Shot Down In Flames (Official Video).mp3' 

編集:

あなたは本当に、が本当には "-XXXX" -portionを検索する場合は、str.rfind()を見ています。これは、最後のダッシュ(-)のインデックスを見つけるのに役立ちます。これは、文字列のスライス表記に直接使用できます。

免責事項:

この間違った結果を提供します、ビデオidはダッシュが含まれている場合、例えばここで:https://www.youtube.com/watch?v=7WVBEB8-wa0

最後のダッシュを見つけて、-wa0を削除し、ファイル名の末尾に-7WVBEB8と残しておきます。

+0

助けてくれてありがとう、これは私がこれまで行ってきたことですが、 " - "を見つけてそこから削除する方法があるのだろうか。.folder = r "c:¥users¥jamie¥mp3¥acdc" import os debug = True osのルート、ディレクトリ、ファイル名について.walk(フォルダ):ファイル名でファイル名の : フルパス= os.path.join(ルート、ファイル名) filename_split = os.path.splitext(フルパス) filename_zero、fileext = filename_split 場合デバッグ: プリント(filename_zero [:-16] + fileext) else: os.rename(フルパス、ファイル名_zero [: - 16] +ファイルテキスト) –

+0

ちょっと@JamieSpake、私は私の答えを延長した。 –

関連する問題