如何为C++结构自动生成 python 数据解析器

How to autogenerate python data parser for C++ structs?

本文关键字:数据 python 自动生成 C++ 结构      更新时间:2023-10-16

我有一个基于C++的应用程序将数据记录到文件中,我想在Python中加载这些数据,以便我可以探索它。 数据文件是平面文件,每个文件具有已知数量的记录。数据记录在我的C++应用程序中表示为结构(嵌套结构(。在我的开发过程中,这个结构(subtructs(会定期更改,因此我还必须对加载数据的Python代码进行相关更改。这显然很乏味,并且不能很好地扩展。我感兴趣的是一种自动化更新 Python 代码过程的方法(或其他完全处理此问题的方法(。我正在探索一些将我的C++结构转换为其他格式(如 JSON(的库,但我还没有找到一个可靠的解决方案。 谁能提出一些建议?

  • 考虑使用具有C++和 Python 绑定的数据序列化系统/格式:https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats(例如 protobuf 甚至 JSON 或 csv(
  • 或者,考虑用 C 语言编写一个库,该库读取数据端将它们公开为结构。然后使用:https://docs.python.org/3.7/library/ctypes.html 调用此 C 库并检索记录

当然,如果数据的语义发生变化(例如,需要通过分析新的重要字段(,您将不得不在python代码中处理这些新内容。没有免费的午餐。