python - 将二进制数据解析为多个 ctypes 结构
问题描述
所以我确实有一个二进制文件,我想解析它。在这个文件中,我有一个标题,标题定义了文件其余部分的结构。
例如,文件看起来像这样(作为模型):
版本号 = 001
File_Type = 配置
Number_of_struct_A = 4
Number_of_struct_B = 3
struct_A
struct_A
struct_A
struct_A
struct_B
struct_B
struct_B
到目前为止,我能够读取文件中的第一个结构,如下例所示: 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)
所以这会给我标题,但我不知道应该如何保存文件中的数据,以便我可以使用我刚刚获得的有关结构数量的信息。或者就此而言,如何存储数据,因为一遍又一遍地读取文件似乎不是一个好的选择。
我希望我的问题是可以理解的。
解决方案
推荐阅读
- php - php提交后刷新
- oracle-apex - 从基于 PL/SQL 函数体返回 SQL 查询的 Oracle APEX 5 经典报告下载到 Excel 选项,
- bash - 使用 sed 用“/”分隔的 2 个连接变量替换文本
- javascript - 取消静音视频JS脚本在控制台中工作但不是页面
- r - grid.table plots:根据行值设置单元格背景颜色
- java - jdk10上tomcat8的多发布战争
- python - Pygame - Scale_to_length 不能 100% 工作
- php - PHP IF / ELSEIF / ELSE 不工作
- python - 如何计算与熊猫的滚动相关性?
- python - pywin32相关的恶意软件是什么