来自字节的 eyed3 文件
eyed3 file from bytes
是否可以在不将其写入磁盘的情况下修改下载的 MP3 的标签?
我正在使用
def downloadTrack(url)
track_data = requests.get(url)
audiofile = Mp3AudioInherited(track_data.content)
audiofile.initTag()
与 class Mp3AudioInherited
继承自 core.AudioFile much like 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
不是类文件对象吗?
感谢和问候!
不,io.BytesIO
对象在 Python 中不是文件类的(即它们不能与 file
对象互换) 2. 尝试使用 StringIO.StringIO 获取Python 2.
中的内存支持的类文件对象
是否可以在不将其写入磁盘的情况下修改下载的 MP3 的标签?
我正在使用
def downloadTrack(url)
track_data = requests.get(url)
audiofile = Mp3AudioInherited(track_data.content)
audiofile.initTag()
与 class Mp3AudioInherited
继承自 core.AudioFile much like 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
不是类文件对象吗?
感谢和问候!
不,io.BytesIO
对象在 Python 中不是文件类的(即它们不能与 file
对象互换) 2. 尝试使用 StringIO.StringIO 获取Python 2.