Python中Struct二进制数据模块


Python的struct模块,用来从字符串创建和提取打包的二进制数据。

pack(fmt, v1, v2, ...) 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)。 unpack(fmt, string) 按照给定的格式(fmt)解析字节流string,返回解析出来的tuple。


向一个二进制文件中写入数据。

>>>F = open('data.bin', 'wb')
>>>import struct
>>>data = struct.pack('>i4sh',7,'spam',8)
>>>data
b'\x00\x00\x00\x07spam\x00\x08'
>>>F.write(data)
10
>>>F.close()


从一个二进制文件中读取数据
>>>F = open('data.bin', 'rb')
>>>data = F.read()
>>>data
b'\x00\x00\x00\x07spam\x00\x08'
>>>import struct
>>>values = struct.unpack('>i4sh',data)
>>>values
(7,'spam',8)
注意unpack返回的是一个tuple对象。

评论关闭