将C++程序输出与 Python 脚本链接
Link C++ program output with Python script
我有一个C++程序,它使用一些非常具体的方法来计算数据集(30,000个元素)的成对距离。输出文件为 20 GB,如下所示:
点 1, 点 2, 距离 X点,点J,距离xx.....
然后,我将文件输入到Python并使用Python(NumPy)进行聚类。使用 Python 读取输出文件需要很长时间。有没有办法将C++程序直接与我的 Python 代码连接,以节省中间文件的 I/O 时间?也许使用 SWIG?
我假设你一直在保存ascii。您可以修改C++代码以编写二进制文件,并使用numpy.fromfile读取它。
为了更直接的连接,你可以使用 swig 将你的C++代码包装为一个库(删除 main() 并从 Python 驱动它)。这允许您在C++和Python之间共享数组的内存。
您可以在C++端使用 Python 的缓冲区协议,在 Python 端使用 numpy.frombuffer。或者您可以使用 numpy 标头直接处理 C++ 中的 numpy 数组。下面是使用第二种方法的小型 wig 示例项目。(免责声明:是我写的。
相关文章:
- 如何在c++中使用system()来运行包含空格的python脚本
- 如何将真正的字符串从python c-api转换为python脚本
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 使用 Main() 返回值作为 python 脚本的参数
- 如何制作启动 Python 脚本的 linux 后台进程(在 c 中)
- 从Raspberry Pi / Linux上的Python脚本运行和停止C++程序
- C++ Python 并不总是执行 Python 脚本
- 从C++调用 Python 脚本以持续流式传输数据
- 将数据从 c++ 文件连续发送到 Python 脚本以进行进一步处理
- 错误,在嵌入在C++程序中的 python 脚本中使用 matplotlib 时
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- Python 脚本到 c .obj 文件
- 从 c++ 运行 python 脚本时出现问题
- C++ :从C++脚本内部触发存储在我机器上的 python 脚本
- 从 c++ 中运行 python 脚本,找不到模块
- 参数从 Python 脚本传递到 C++ 使用 boost-python
- 无法从Linux,C ++执行"my_script" python脚本"main(filename)"功能;pModule = PyImport_Import(pName);返回空值
- 如何在C ++(qt)代码中使用python脚本?(网页抓取方面)
- 将对象从 python 脚本传递给 c++