python的pack和unpack用法

python的pack和unpack用法
pack和unpack在处理二进制流中比较常用的封包、解包格式

按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)

pack(fmt, v1, v2, …)

按照给定的格式(fmt)解析字节流string,返回解析出来的tuple

unpack(fmt, string)

计算给定的格式(fmt)占用多少字节的内存

calcsize(fmt)
在这里插入图片描述
python的pack和unpack用法_第1张图片

格式中的第一个字符来改变对齐方式(字节序).定义如下python的pack和unpack用法_第2张图片
例如:格式为:2字节(包长度)+4字节(包id)+包内容 >表示字节序
解包
size, = struct.unpack(‘>H’,raw[0:2])
cmd, = struct.unpack(‘>H’, raw[2:4])
string, = struct.unpack(‘>{0}s’.format(size - 4), raw[4:size])
封包:
fmt = “>HH{0}s”.format(len(result))
args = (len(result), cmd,result)
data = struct.pack(fmt, *args)

你可能感兴趣的:(python,python)