我有一个二进制文件,其中数据填充了“C”数据结构。我想用Python访问它。我在python中看过几篇关于struct
的帖子。但是,我无法清楚地了解如何在我的要求中使用它。任何帮助将不胜感激。
This is what i Wanted
import struct
def write():
values = (3 , 'name' , 6.6)
s = struct.Struct('i4sf')
packed_data = s.pack(*values)
fname = '123.sample'
f = open(fname , 'wb')
f.write(packed_data)
f.close()
def read():
fname = '123.sample'
f = open(fname , 'rb')
data = f.read()
data_val = struct.unpack('i4sf' , data)
print data_val
答案 0 :(得分:3)
这是一个非常通用的问题,struct模块提供了打包和解包二进制数据的方法,如果您正确了解格式,则可以使用struct格式表示它并将其解压缩。例如打包和解压缩unsigned short和char使用:
>>> import struct
>>> data = struct.pack('Hc',255, 'a')
>>> struct.unpack('Hc', data)
(255, 'a')
通过struct module docs,尝试解压缩您的数据,如果您遇到困难,可以提出具体问题。