-5

我有一个二进制文件,其中的数据填充了“C”数据结构。我想使用 Python 访问它。我看过一些关于structpython的帖子。但是,我无法清楚地了解如何根据我的要求使用它。任何帮助将不胜感激。


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
4

1 回答 1

3

这是一个非常通用的问题,struct module 提供了打包和解包二进制数据的方法,如果您正确了解格式,您可以使用 struct format 表示并解包它。例如打包和解包一个无符号短和一个字符使用这个:

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

因此,请浏览struct module docs,并尝试解压缩您的数据,如果您遇到困难,那么您可以提出具体问题。

于 2013-09-19T18:22:43.467 回答