版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jerry_1126/article/details/83549355
struct模块能够构造并解析打包的二进制数据。 从某种意义来说,它是一个数据转换工具,它能够把文件中的字符串解读为二进制数据。 简单用法如下:
-
用struct来打包
>>> import struct
>>> F = open("data.bin", "wb") # 打开文件供写
>>> data = struct.pack(">i4sh", 7, 'spam', 8) # 使用>i4sh格式,打包数据
>>> data
'\x00\x00\x00\x07spam\x00\x08'
>>> F.write(data) # 写byte字符数据
>>> F.close()
-
用struct来解包
>>> import os
>>> F = open("data.bin", "rb") # 打开二进制文件,方式"rb"
>>> data = F.read() # 读取二进制文件的内容
>>> data
'\x00\x00\x00\x07spam\x00\x08'
>>> values = struct.unpack(">i4sh", data) # 使用'>4ish'格式来解包
>>> values # 实际的值
(7, 'spam', 8)
>>>
备注:
这里的格式化字符串是指一个4字节整数,一个包含4个字符的字符串以及一个2位整数的数据包