Разбор двоичных данных в нескольких структурах ctypes - PullRequest
1 голос
/ 08 мая 2019

Итак, у меня есть двоичный файл, который я хочу проанализировать.В этом файле у меня есть заголовок, а заголовок определяет, как структурируется остальная часть файла.

Например, файл будет выглядеть следующим образом (как макет):

Version_Number = 001

File_Type = config

Number_of_struct_A = 4

Number_of_struct_B = 3

struct_A

struct_A

struct_A

struct_A

struct_B

struct_B

struct_B

И до сих пор я могу прочитать первую структуру в моем файле, как показано в этом примере: Анализ двоичных данных в объекте ctypes Structure через 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)

Так что это даст мне заголовок, но я понятия не имею, как мне сохранить данные из моего файла,так что я могу использовать информацию о количестве структур, которые я только что получил.Или в этом отношении, как хранить данные вообще, поскольку чтение файла снова и снова, кажется, не является хорошим вариантом.

Надеюсь, мой вопрос понятен.

...