0

是否可以修改下载的 MP3 的标签,而不将其写入磁盘?

我在用

def downloadTrack(url)
    track_data = requests.get(url)

    audiofile = Mp3AudioInherited(track_data.content)
    audiofile.initTag()

从core.AudioFileMp3AudioInherited继承的类很像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类似文件的对象吗?

谢谢并恭祝安康!

4

1 回答 1

0

不,io.BytesIO对象在 Python 2 中不是类似文件的(即它们不能与file对象互换)。尝试使用StringIO.StringIO在 Python 2中获取内存支持的类似文件的对象。

于 2015-10-08T20:28:02.697 回答