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)

结论

如果您对本教程有任何疑问,请在评论区中提出。

更新于: 2020年7月11日

4K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告