是否可以修改已下载MP3的标签,而无需将其写入磁盘?
我正在使用
def downloadTrack(url)
track_data = requests.get(url)
audiofile = Mp3AudioInherited(track_data.content)
audiofile.initTag()
类Mp3AudioInherited
继承自core.AudioFile,类似于mp3.Mp3AudioFile。唯一显着的区别:
class Mp3AudioInherited(core.AudioFile):
...
def _read(self):
with io.BytesIO(self.data) as file_obj:
self._tag = id3.Tag()
tag_found = self._tag.parse(file_obj, self._tag_version)
...
不幸的是_tag.parse()
会抛出ValueError: Invalid type: <type '_io.BytesIO'>
。 BytesIO
不是类似文件的对象吗?
谢谢和问候!
答案 0 :(得分:0)
不,io.BytesIO
对象在Python 2中不是类文件(即,它们不能与file
对象互换)。尝试使用StringIO.StringIO获取内存支持的文件 - 喜欢Python 2中的对象。