struct编程-打包、解包

struct用于不同语言中的数据类型转换成目标语言python的数据类型,用于在网络上传输,
网络上传输的类型都是bytes类型

1、打包,示例:

import struct
a = 20
b = 400
str = struct.pack('ii',a,b) # 标识符'i'表示转换为int,'ii'表示两个int变量,
print('length:',len(str))   #转换后结果长度为8个字节(int类型占用4个字节,连个int为8个字节)
print(str)
print(repr(str))

str = struct.pack('2i',a,b)#'2i'其中2表示个数,即两个int变量,与上面写法等价
print('length:',len(str))
print(str)
print(repr(str))

2、解包,
示例1:

import struct
a = 20
b = 400
str = struct.pack('ii',a,b) # 标识符'i'表示转换为int,'ii'表示两个int变量,
a1,a2 = struct.unpack('2i',str) #解包格式,struct.unpack('数据类型',打包的数据)
print("a1:",type(a1),a1)
print("a2:",type(a2),a2)

执行结果:
a1: <class ‘int’> 20
a2: <class ‘int’> 400

示例2:

sdata = struct.pach('i10sh',34,'abcdefghi\0',65)    #打包的数据
a,b,c = struct.unpack('i10sh',data)
#'i10sh':i表示int,10s表示10个char类型,h表示short int

3、struct.calcsize 用于计算格式字符串对应的结果长度,如:
struct.calcsize(“ii”),返回8,每个int占用4个字节,所有2*4 占用8个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值