我有一段生成数据的 C++ 代码。我想将数据公开给 Python。但这并不像听起来那么微不足道...
假设这个 C++ 编译成二进制文件cppcode
。由于框架设置的复杂方式,我只能将代码运行为
./cppcode {command line arguments}
在 cppcode 内部,它生成我想从 Python 访问的数据。我知道我是否可以以某种方式将程序重写为
CppClass cpp;
cpp.run( args );
然后我可以用 Boost Python 封装 CppClass,构建一个实例,使用参数运行,并访问生成中的数据。
但是现在我只能将代码运行为./cppcode {command line arguments}
我不能只./cppcode
从 Python 调用,因为在 ./cppcode 完成后,它的内存将被系统重新收集,我再也无法从 Python 中看到它了。有没有办法解决这个问题?
我能想到:(1)让./cppcode把数据转储到磁盘,让python读取。(2) 将数据转储到标准输出并通过管道传输到 python 脚本中。但无论哪种方式,我都必须在 Python 中进行一些可能很慢的字符串解析。有没有办法绕过它?