python模块 -- struct模块

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

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