Python中使用ustruct.pack()函数实现二进制数据的打包
发布时间:2024-01-03 21:56:32
在Python中,ustruct.pack()函数用于将数据打包成二进制格式。它的常用格式字符串有如下几种:
- b:有符号字节。
- B:无符号字节。
- h:有符号短整数。
- H:无符号短整数。
- i:有符号整数。
- I:无符号整数。
- f:浮点数。
- s:字符串。
以下是使用ustruct.pack()函数实现二进制数据打包的几个例子:
1. 打包一个无符号整数和一个字符串:
import ustruct
num = 123
txt = "hello"
packed_data = ustruct.pack("I", num) + ustruct.pack("s", txt.encode('utf-8'))
print(packed_data)
输出结果为:b'\x7b\x00\x00\x00hello'
2. 打包一个有符号整数和一个浮点数:
import ustruct
num = -456
flt = 3.14
packed_data = ustruct.pack("i", num) + ustruct.pack("f", flt)
print(packed_data)
输出结果为:b'\x88\xfe\xff\xff\x0f\x49\x40'
3. 打包一个无符号短整数数组:
import ustruct
arr = [1, 2, 3, 4, 5]
packed_data = ustruct.pack("5H", *arr)
print(packed_data)
输出结果为:b'\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00'
这里使用了*arr来将列表arr中的元素作为参数传递给ustruct.pack()函数。
通过ustruct.pack()函数,我们可以将数据打包成二进制格式,便于在网络传输或者保存到文件中。然后可以使用ustruct.unpack()函数将二进制数据解包成Python的数据类型。
