1

mutagen ライブラリを使用して、音楽フォルダー内のファイルの名前を再フォーマットする Python スクリプトを作成しています。スクリプトは次のとおりです。

from mutagen.easyid3 import EasyID3
import os

print "input directory for processing: "
path = raw_input()
os.chdir(path)        

file_list = filter((lambda x: '.mp3' in x), os.listdir(path))

for i in file_list:
        current = EasyID3(i)
        newname = current["title"][0] + ".mp3"
        newname.replace(" ", "_")
        del current
        print "renaming "+i+" to "+newname
        os.rename(i, newname)

実行しようとすると、次のようになります。

$ python rename_music.py
input directory for processing: 
/home/james/Music/inscrutable_numbers
Traceback (most recent call last):
  File "rename_music.py", line 11, in <module>
    current = EasyID3(i)
  File "/usr/local/lib/python2.7/dist-packages/mutagen/easyid3.py", line 167, in __init__
    self.load(filename)
  File "/usr/local/lib/python2.7/dist-packages/mutagen/id3.py", line 139, in load
    for frame in self.__read_frames(data, frames=frames):
  File "/usr/local/lib/python2.7/dist-packages/mutagen/id3.py", line 317, in __read_frames
    try: yield self.__load_framedata(tag, flags, framedata)
  File "/usr/local/lib/python2.7/dist-packages/mutagen/id3.py", line 340, in __load_framedata
    return tag.fromData(self, flags, framedata)
  File "/usr/local/lib/python2.7/dist-packages/mutagen/id3.py", line 1085, in fromData
    raise ID3BadUnsynchData, '%s: %r' % (err, data)
mutagen.id3.ID3BadUnsynchData: invalid sync-safe string: '\x00j\x01\x0c\x00\x12(...lots of unicode...)\x12\xff\xff\xff\x00'

ここで何が問題なのか誰か知っていますか?

編集: 特定のファイルでは変異誘発が機能しないことが判明しました。try 句を追加してエラーをスキップしたところ、動作するようになりました

4

0 に答える 0