Python中的struct模块

在本教程中,我们将学习struct模块。让我们开始学习本教程。

模块struct用于将Python的本机数据类型转换为字节字符串,反之亦然。我们不必安装它。它是Python3中可用的内置模块。

struct模块与C语言有关。我们必须知道C语言中用来表示各种数据类型的符号,以便与struct模块一起使用。让我们来看一些。

数据类型格式字符
inti
charc
strings
floatf

让我们看看如何将Python数据类型转换为字节。

struct.pack()

方法struct.pack()用于将数据类型转换为字节。它基于第一个字符串采用多个参数。

如上表 ,我们必须传递第一个带有格式字符的字符串。我们可以根据需要传递任何参数。让我们看一些例子。

  • struct.pack('14s i',b'Nhooo',2020)

  • struct.pack('iif 3s',1,2,3.5,b'abc')

让我们将以上示例转换为字节。

示例

# importing the struct module
import struct
# converting into bytes
print(struct.pack('14s i', b'Nhooo', 2020))
print(struct.pack('i i f 3s', 1, 2, 3.5, b'abc'))

输出结果

如果运行上面的代码,则将得到以下结果。

b'Nhooo\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'Nhooo', 2020)
# converting into Python data types
print(struct.unpack('14s i', converted_bytes))

输出结果

如果运行上面的代码,则将得到以下结果。

(b'Nhooo', 2020)

结论

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