Python3 struct — 二进制数据结构
Python3 struct模块提供了对二进制数据的打包和解包操作,这是在处理二进制文件或进行网络通信时非常有用的功能。
以下是一些常用的struct方法:
- struct.pack(format, v1, v2, ...)
该函数根据给定的格式(format)字符串打包参数,返回一个包含了打包数据的字符串。
import struct
# 打包
data = struct.pack('>i4s', 123456789, b'hello')
print(data) # 输出: b'\x15\xcd\x00\x00\x00\x00\x00\x00hello'
- struct.unpack(format, buffer)
该函数根据给定的格式(format)字符串解包buffer内的数据,返回一个由解包数据组成的元组。
import struct
# 解包
data = b'\x15\xcd\x00\x00\x00\x00\x00\x00hello'
unpacked_data = struct.unpack('>i4s', data)
print(unpacked_data) # 输出: (123456789, b'hello')
- struct.calcsize(format)
该函数计算给定的格式(format)字符串所需要的字节数。
import struct
# 计算字节数
size = struct.calcsize('>i4s')
print(size) # 输出: 12
注意:在上述的所有例子中,'>i4s' 是一个格式字符串,'>' 是字节顺序标志,'i' 表示一个整型(int),'4s' 表示四个字符的字符串。
以上就是Python3 struct模块的基本使用方法,它非常适合处理二进制数据。
评论已关闭