Python中的struct模块
在本教程中,我们将学习struct模块。让我们开始学习本教程。
模块struct用于将Python的本机数据类型转换为字节字符串,反之亦然。我们不必安装它。它是Python3中可用的内置模块。
struct模块与C语言有关。我们必须知道C语言中用来表示各种数据类型的符号,以便与struct模块一起使用。让我们来看一些。
让我们看看如何将Python数据类型转换为字节。
struct.pack()
方法struct.pack()用于将数据类型转换为字节。它基于第一个字符串采用多个参数。
如上表,我们必须传递第一个带有格式字符的字符串。我们可以根据需要传递任何参数。让我们看一些例子。
struct.pack('14si',b'Nhooo',2020)
struct.pack('iif3s',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)
结论
如果您对本教程有任何疑问,请在评论部分中提及。