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

2024-09-24 00:26:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个二进制文件,其中的数据是用“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

Tags: 文件数据samplereaddatadef二进制val
1条回答
网友
1楼 · 发布于 2024-09-24 00:26:48

这是一个非常通用的问题,struct模块提供了打包和解包二进制数据的方法,如果您正确地知道格式,您可以使用struct format来表示它并解包。e、 g.要打包和解包未签名的short和char,请使用以下命令:

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

所以通过struct module docs,试着打开数据包,如果你被卡住了,你可以问一些具体的问题。你知道吗

相关问题 更多 >