欢迎访问宙启技术站
智能推送

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的数据类型。