Я делаю программу для редактирования тегов в mp3, используя Python, прямо сейчас я использую модуль мутагена и для того, чтобы вставлять изображение в качестве обложки в mp3-файл с использованием стандартов id3v4. Я должен добавить фрейм APIC using this.Что означает «данные необработанного изображения, как строка байтов»?
Но я не понимаю, что мне нужно внести в параметры encoding
, mime
и data
.
Я посмотрел пример отсюда и пришел с этим:
frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg"))
Но я не знаю, что первые 3 средства? Почему, когда я положил "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
и когда я поставил "b"
frame= APIC(3,"image/jpg",3,"Cover",open("albumcover.jpg","b"))
возвращает
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
Так что я должен положить там?
И я пробовал open("albumcover.jpg").read()
тоже, и он не работает.
Ответ на проблему с байтом может быть [строка в байтовой проблеме, с которой я столкнулся с Python 3] - http://stackoverflow.com/questions/5440485/typeerror-post-data-should-be-bytes-or-an -iterable-of-bytes-it-can not-be-str – user2725012