诱变剂:TypeError:需要一个类似字节的对象,而不是“str”
Posted
技术标签:
【中文标题】诱变剂:TypeError:需要一个类似字节的对象,而不是“str”【英文标题】:Mutagen: TypeError: a bytes-like object is required, not 'str' 【发布时间】:2019-12-29 10:02:49 【问题描述】:我该怎么办?我收到这个错误。我想为 FLAC 添加一些标签。 我搜索但我没有找到任何东西。请帮帮我。
Traceback (most recent call last):
File "indir.py", line 50, in <module>
audio.save()
File "/usr/local/lib/python3.6/dist-packages/mutagen/_util.py", line 169, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/mutagen/_util.py", line 140, in wrapper
return func(self, h, *args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 847, in save
self._save(filething, self.metadata_blocks, deleteid3, padding)
File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 864, in _save
metadata_blocks, available, content_size, padding)
File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 154, in _writeblocks
data += cls._writeblock(block)
File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 126, in _writeblock
datum = block.write()
File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 620, in write
f.write(self.data)
TypeError: a bytes-like object is required, not 'str'
我的代码:
audio = FLAC("music.flac")
audio['artist'] = sarki.artist.name
audio['title'] = sarki.name
pic = Picture()
pic.type = id3.PictureType.COVER_FRONT
pic.width = 640
pic.height = 640
pic.mime = 'image/jpeg'
pic.data = "music.jpg"
audio.add_picture(pic)
audio.save()
【问题讨论】:
【参考方案1】:我相信错误就在这里:
pic.data = "music.jpg"
您正在尝试将图片的图像数据设置为字符串。我猜您想将图像数据设置为文件music.jpg
的内容。如果是这样,请尝试将此行替换为以下两行:
with open("music.jpg", "rb") as f:
pic.data = f.read()
下面是an example in the Mutagen API reference。
【讨论】:
以上是关于诱变剂:TypeError:需要一个类似字节的对象,而不是“str”的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:需要一个类似字节的对象,而不是'str'-python 2到3 [重复]
“TypeError:在 OAuth 2.0 回调请求期间需要一个类似字节的对象,而不是 'str'”
TypeError:需要一个类似字节的对象,而不是“str”套接字编程
Django Rest Framework TypeError需要一个类似字节的对象,而不是'str'