Python 中的 struct 模块
在本教程中,我们将学习 **struct** 模块。让我们深入教程。
**struct** 模块用于将 Python 的原生数据类型转换为 **字节字符串**,反之亦然。我们不需要安装它,它是 Python3 中可用的内置模块。
struct 模块与 C 语言相关。我们需要了解 C 语言中用于表示各种数据类型的符号,才能使用 **struct** 模块。让我们看一些。
数据类型 | 格式字符 |
---|---|
整数 | i |
字符 | c |
字符串 | s |
浮点数 | f |
让我们看看如何将 Python 数据类型转换为字节。
struct.pack()
**struct.pack()** 方法用于将数据类型转换为字节。它根据第一个字符串获取多个参数。
我们必须使用上面表格中提到的格式字符传递第一个字符串。我们可以根据需要传递任何参数。让我们看一些例子。
- struct.pack('14s i', b'Tutorialspoint', 2020)
- struct.pack('i i f 3s', 1, 2, 3.5, b'abc')
让我们将以上示例转换为字节。
示例
# importing the struct module import struct # converting into bytes print(struct.pack('14s i', b'Tutorialspoint', 2020)) print(struct.pack('i i f 3s', 1, 2, 3.5, b'abc'))
输出
如果运行以上代码,则会得到以下结果。
b'Tutorialspoint\x00\x00\xe4\x07\x00\x00' b'\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00`@abc'
struct.unpack()¶
我们还有另一个方法 **struct.unpack()**,它将字节转换为本机 Python 数据类型。它接受两个参数,第一个参数类似于 **pack()** 方法,第二个参数是 **struct.pack()** 方法的结果。
**struct.unpack()** 方法始终返回一个元组。
示例
# importing the struct module import struct # converting into bytes converted_bytes = struct.pack('14s i', b'Tutorialspoint', 2020) # converting into Python data types print(struct.unpack('14s i', converted_bytes))
输出
如果运行以上代码,则会得到以下结果。
(b'Tutorialspoint', 2020)
结论
如果您对本教程有任何疑问,请在评论区中提出。
广告