在python中使用struct pack

时间:2013-09-10 12:14:22

标签: python

我有一个整数形式的数字,我需要将其转换为4个字节并将其存储在列表中。我试图在python中使用struct模块但是无法让它工作:

struct.pack("i",34);

当我期望打印二进制等效时,返回0。 预期产出:

[0x00 0x00 0x00 0x22]

但是struct.pack返回空。我做错了什么?

1 个答案:

答案 0 :(得分:47)

输出作为字节字符串返回,Python会尽可能打印ASCII字符这样的字符串:

>>> import struct
>>> struct.pack("i",34)
'"\x00\x00\x00'

注意开头的引用,即ASCII码点34:

>>> ord('"')
34
>>> hex(ord('"'))
'0x22'

如果您希望撤消订购,那么您可能需要indicate a byte order

>>> struct.pack(">i",34)
'\x00\x00\x00"'

其中>表示大端对齐。