struct.pack没有紧密打包

时间:2019-02-25 13:41:39

标签: struct binary python-3.7 pack

我想创建一个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'

我该怎么办?为什么我的解决方案不起作用?似乎已根据the documentation正确使用。

1 个答案:

答案 0 :(得分:0)

我的问题通过对this question的回答得以解决。格式字符串开头的=字符告诉pack方法不对齐数据,而是产生一个精确指定长度的字节字符串。 this chapter中指定了格式字符是否允许对齐。我莫名其妙地错过了。