Я разобрался с тегами ID3v2.3, так как там 4 байта, но тег заголовка фрейма здесь всего 3 байта, а не 4. Похоже, это означает, что я не могу использовать struct.unpack
для получения int
из этого.
Например, сейчас я работаю с тегом: TT2\x00\x00\x0c\x00Torn Within
, где TT2
— идентификатор имени, а \x00\x00\x0c
— идентификатор размера. Содержимое тега \x00Torn Within
имеет размер 12 байт.
Вот заголовок ID3 песни. 'ID3\x02\x00\x00\x00\x04NP'
, где видно, что кодировка и флаги не установлены.
Я пробовал struct.unpack('>3b', '\x00\x00\x0c')
, но это захватывает только значение каждого отдельного байта.
Но после этого я застрял, потому что, если я не добавлю \x00
к тегу размера, я не смогу продолжить. Что я делаю?
Вот документы по тегам ID3 http://id3.org/id3v2-00 и документы для модуля struct
http://docs.python.org/library/struct.html#format-characters
edit обнаружил, что я могу сделать это: int(binascii.hexlify('\x00\x00\x0c'), 16)
но я не думаю, что это отличное решение
\x00
нулевой байт. - person Martijn Pieters   schedule 15.07.2012