python struct模块 处理字节流

首先看一下,struct 的字节顺序格式。
在这里插入图片描述
其次是struct的格式对照表。
在这里插入图片描述
下面是案例:
单项数据编解码

>>>struct.pack('i',379978)
b'J\xcc\x05\x00'
>>>struct.pack('>i',379978)
b'\x00\x05\xccJ'

解析:

>>>struct.unpack('i',b'J\xcc\x05\x00')
(379978,)
>>>struct.unpack('>i',b'\x00\x05\xccJ')
(379978,)

多项数据编解码

>>>struct.pack('>hiI',9358,379978,1023568)
b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP'

>>>struct.pack('>4shiI',b'jhon',9358,379978,1023568)
b'jhon$\x8e\x00\x05\xccJ\x00\x0f\x9eP'

解析:

>>>struct.unpack('>hiI',b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP')
(9358, 379978, 1023568)

>>>struct.unpack('>4shiI',b'jhon$\x8e\x00\x05\xccJ\x00\x0f\x9eP')
(b'jhon', 9358, 379978, 1023568)

字节流转十六进制显示:

>>>b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP'.hex()
'248e0005cc4a000f9e50'

十六进制转字节流

>>>bytes.fromhex('248e0005cc4a000f9e50')
b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP'

十进制数,根据转换成特定字节个数的十六进制。例如字节数是4.

>>>hex(536)[2:].zfill(8)
'00000218'

十六进制转十进制

>>>int('00000218',16)
536
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值