Python 什么是;原始图像数据,作为字节字符串;什么意思?

Python 什么是;原始图像数据,作为字节字符串;什么意思?,python,mp3,id3,mutagen,Python,Mp3,Id3,Mutagen,我正在使用Python编写一个程序来编辑mp3上的标签,现在我正在使用诱变剂模块,为了使用id3v4标准将图像作为封面艺术嵌入mp3文件,我必须添加APIC框架 但是我不明白我必须在参数编码、mime和数据中添加什么 我从这里看了一个例子,得出了以下结论: frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg")) 但我不知道前三个是什么意思?为什么我把“utf-8”放在上面

我正在使用Python编写一个程序来编辑mp3上的标签,现在我正在使用诱变剂模块,为了使用id3v4标准将图像作为封面艺术嵌入mp3文件,我必须添加APIC框架

但是我不明白我必须在参数
编码
mime
数据
中添加什么

我从这里看了一个例子,得出了以下结论:

frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg"))
但我不知道前三个是什么意思?为什么我把
“utf-8”
放在上面时它不工作?而
open()
函数不起作用,它会返回如下错误:

Traceback (most recent call last):
  File "<pyshell#104>", line 1, in <module>
    frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg"))
  File "C:\Python34\lib\site-packages\mutagen\id3\_frames.py", line 65, in __init__
    setattr(self, checker.name, checker.validate(self, val))
  File "C:\Python34\lib\site-packages\mutagen\id3\_specs.py", line 184, in validate
    raise TypeError("%s has to be bytes" % self.name)
TypeError: data has to be bytes
它回来了

Traceback (most recent call last):
  File "<pyshell#106>", line 1, in <module>
    frame= APIC("utf-8","image/jpg",3,"Cover",open("albumcover.jpg","b"))
ValueError: Must have exactly one of create/read/write/append mode and at most one plus
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
frame=APIC(“utf-8”,“图像/jpg”,3,“封面”,打开(“albumcover.jpg”,“b”))
ValueError:必须正好有一个创建/读取/写入/附加模式,最多一个加号
那我应该放什么呢


我也尝试了
open(“albumcover.jpg”).read()
,但它不起作用。

您需要以-
read
(rb)或
write
(wb)或
append
(ab)模式打开文件(b-表示它是一个二进制文件,我们从中读取字节而不是字符串)

对于您的情况,我认为
read
模式就足够了,所以请尝试-

frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg","rb").read())

rb
表示我们需要以读取模式打开该文件,并且它是一个二进制文件,对其调用
.read()
函数会导致它从文件中读取字节并返回。

您需要以-
读取
(rb)或
写入
(wb)或
附加
(ab)模式打开该文件(b-表示它是一个二进制文件,我们从中读取字节而不是字符串)

对于您的情况,我认为
read
模式就足够了,所以请尝试-

frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg","rb").read())

rb
表示我们需要以读取模式打开文件,并且它是一个二进制文件,调用
.read()
函数使它从文件中读取字节并返回。

参数
3
意味着它是相册的封面。

参数
3
意味着它是相册的封面。

这是第二个3,我是说前3,前3是什么?那是第二个3,我是说前3,什么前3个是吗?字节问题的答案可能是[我在Python3中遇到的字符串到字节问题]——字节问题的答案可能是[我在Python3中遇到的字符串到字节问题]-很高兴它对您有效,我会建议您接受答案,因为这将帮助可能有类似问题的其他人以及整个社区(不仅仅是这一个,所有问题)。很高兴它对您有效,我会建议您接受答案,因为这将帮助可能有类似问题的其他人以及整个社区(不仅仅是这个,所有的问题)。