Python 编辑带有诱变剂的.aiff文件的标签数据时出错“;TypeError:不是框架实例;及;ID3NoHeaderError:donds';t以ID3标记开始";

Python 编辑带有诱变剂的.aiff文件的标签数据时出错“;TypeError:不是框架实例;及;ID3NoHeaderError:donds';t以ID3标记开始";,python,id3,mutagen,aiff,Python,Id3,Mutagen,Aiff,我正在尝试使用诱变剂将标记写入tables.aif文件。到目前为止没有太多的成功 根据诱变剂文档中的代码,我尝试: from mutagen.aiff import AIFF audio = AIFF(“example.aif”) audio["title"] = u"An example" audio.save() 这是我试图实现的基本目标,但我得到以下信息: Traceback (most recent call last): File "<stdin>", line

我正在尝试使用诱变剂将标记写入tables.aif文件。到目前为止没有太多的成功

根据诱变剂文档中的代码,我尝试:


from mutagen.aiff import AIFF

audio = AIFF(“example.aif”)
audio["title"] = u"An example"
audio.save()
这是我试图实现的基本目标,但我得到以下信息:


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/ef/anaconda2/lib/python2.7/site-packages/mutagen/_file.py", line 75, in __setitem__
    self.tags[key] = value
  File "/Users/ef/anaconda2/lib/python2.7/site-packages/mutagen/id3/_tags.py", line 343, in __setitem__
    raise TypeError("%r not a Frame instance" % tag)
TypeError: u'An example' not a Frame instance
没有返回错误,但是.aif文件返回已损坏

然后我直接从.aif加载ID3文件-这失败了,因为没有ID3标记存在



from mutagen.id3 import ID3, TIT2

    audio = ID3("example.aif”)

    audio.add(TIT2(encoding=3, text=u"An example"))

    audio.save()
audio=ID3(“example.aif”)给出:


回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/id3/_File.py”,第77行,在__
super(ID3,self)。\uuuuu init\uuuuuu(*args,**kwargs)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/id3/_tags.py”,第177行,在u_init中__
超级(ID3Tags,self)。\uuuuu初始值(*args,**kwargs)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/_util.py”,第533行,在__
super(DictProxy,self)。\uuuuuu init\uuuuuu(*args,**kwargs)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/_tags.py”,第111行,在__
自加载(*args,**kwargs)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/_util.py”,第169行,在包装器中
返回函数(*args,**kwargs)
包装器中的文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/_util.py”,第140行
返回函数(self,h,*args,**kwargs)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/id3/_File.py”,第154行,已加载
self.\u header=ID3Header(fileobj)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/_util.py”,第169行,在包装器中
返回函数(*args,**kwargs)
文件“/Users/ef/anaconda2/lib/python2.7/site packages/诱变剂/id3/_tags.py”,第66行,在__
引发ID3NoHeaderError(“%r”不是以ID3标记“%fn”开头)
诱变剂.id3.\u util.ID3NoHeaderError:'example.aif'不以id3标记开头
执行此操作时:

audio["title"] = u"An example"
您正在为标记指定一个字符串。但是诱变剂需要一个文本框(如错误消息所示),其定义如下:

mutagen.id3.TextFrame(encoding=<Encoding.UTF16: 1>, text=[])
执行此操作时:

audio["title"] = u"An example"
您正在为标记指定一个字符串。但是诱变剂需要一个文本框(如错误消息所示),其定义如下:

mutagen.id3.TextFrame(encoding=<Encoding.UTF16: 1>, text=[])

谢谢,我想我现在明白文本框了。但是,在audio.save()上,元数据不会保存到.aif文件中,但我确信这是另一个问题。谢谢,我想我现在理解文本框了。但是,在audio.save()上,元数据不会保存到.aif文件中,但我确信这是另一个问题。
audio["title"] = mutagen.id3.TextFrame(encoding=3, text=[u"An example"])