包含C数据​​结构访问的二进制文件与python

时间:2013-09-19 18:20:03

标签: python c

我有一个二进制文件,其中数据填充了“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

1 个答案:

答案 0 :(得分:3)

这是一个非常通用的问题,struct模块提供了打包和解包二进制数据的方法,如果您正确了解格式,则可以使用struct格式表示它并将其解压缩。例如打包和解压缩unsigned short和char使用:

>>> import struct
>>> data = struct.pack('Hc',255, 'a')
>>> struct.unpack('Hc', data)
(255, 'a')

通过struct module docs,尝试解压缩您的数据,如果您遇到困难,可以提出具体问题。