struct.pack не упаковывается плотно - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу создать, а затем отправить 5-байтовую структуру, например:

import struct
struct.pack("?i", True, 0x01020304)
>>b'\x01\x00\x00\x00\x04\x03\x02\x01'

, но, как вы видите, 1-байтовое логическое значение get дополнено 3 байтами или по какой-то причине заполнено до целого числа.в результате я хочу получить:

>>b'\x01\x04\x03\x02\x01'

Как я могу это сделать и почему мое решение не работает?Кажется, он правильно используется в соответствии с документацией .

1 Ответ

0 голосов
/ 25 февраля 2019

Моя проблема была решена путем ответа на этот вопрос .Символ = в начале строки формата указывает методу pack не выравнивать данные, а генерировать строку байтов точно указанной длины.Разрешает ли выравнивание символ формата, указано в этой главе .Как-то я это пропустил.

...