在Python中,是没有int, long这些c系的强类型的,但是有的时候,我们需要按照字节规则,生成这样的数据。
例如:生成一份网络序的,char+unsigned long数据(4+8字节):
from struct import pack pack('!BQ', 100, 1000) 'd\x00\x00\x00\x00\x00\x00\x03\xe8'
其中,第1个!表示为网络字节序。
BQ是占位符号,分别表示8bit的unsigned char和64bit的unsigned long long,更多的占位符号,可以见Python文档。
读取也是类似的,使用unpack方法:
from struct import pack, unpack data = pack('!BQ', 100, 1000) unpack('!BQ', data) > (100, 1000)