将二进制数据解析为多个ctypes结构

2024-03-29 05:32:21 发布

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

所以我有一个二进制文件,我想解析它。 在这个文件中,我有一个头,头定义了文件其余部分的结构。你知道吗

例如,该文件将如下所示(作为模型):

版本号=001

文件类型=配置

结构的数量=4

结构的数量=3

结构

结构

结构

结构

结构

结构

结构

到目前为止,我能够读取文件中的第一个结构,如本例所示: Parsing binary data into ctypes Structure object via readinto()

例如,我将有以下类型的结构:

class FileInfo(Structure):
    _fields_ = [("Versions_Nr", c_byte),
                ("File_Typ", c_byte),
                ("Number_of_struct_A", c_byte),
                ("Number_of_struct_B", c_byte)]

class Struct_A(Structure):
    _fields_ = [("A", c_byte),
                ("B", c_byte),
                ]

class Struct_B(Structure):
    _fields_ = [("C", c_byte),
                ("D", c_byte),
                ]

#read in my file
file = open('test.cfg', 'rb')
header = FileInfo()
file.readinto(header)

print(header.Number_of_struct_A)

所以这会给我头,但我不知道我应该如何保存我的文件中的数据,以便我可以使用我刚刚获得的关于结构数量的信息。 或者,如何存储数据,因为反复读取文件似乎不是一个好的选择。你知道吗

我希望我的问题可以理解。你知道吗


Tags: 文件ofnumberfields数量bytestructure结构