struct模块:将一组简单数据进行打包,转化为bytes格式发送。或者将一组bytes格式数据,进行解析。
Struct(fmt)
功能:生成结构化对象
参数:fmt 定制的数据结构
st.pack(v1,v2,v3...)
功能:将一组数据安装指定格式打包转换为bytes
参数:要打包的数据
返回只:bytes字节串
st.unpack(bytes_data)
功能:将bytes字节串按照指定的格式解析
参数:要解析的字节内容
返回值:解析后的内容
st.pack(fmt,v1,v2,v3,....)
功能:将给出的数据按照fmt给定格式打包成字节流
st.unpack(fmt, data)
功能:将字节流数据按照给定格式解析,返回解析后数组组成的元组
常见格式:
格式 Python类型 标准尺寸
c 1个字节长度 1
ns n个字符 n
i 整数 4
f 浮点 4
"""
i用于整数,占4个字节
s用于字符,4s表示4个字符长度
f用于浮点数,占4个字节
"""
>>> import struct
>>> st=struct.Struct('i4sf')
>>> data=st.pack(1001,'Lisi'.encode() ,1.70) # 按i4sf打包数据
>>> print(data) # 输出打包后的字节数组
b'\xe9\x03\x00\x00Lisi\x9a\x99\xd9?'
>>> id,name,height=st.unpack(data) # 按i4sf解包数据
>>> print("id=%d,name=%s,height=%f" % (id,name.decode(),height)) # 输出解包后的数据
id=1001,name=Lisi,height=1.700000