从python程序执行C++程序

Executing a C++ program from a python program

本文关键字:程序 C++ 执行 python      更新时间:2023-10-16

这是一个场景,我必须在10000个数据点上运行聚类算法。我已经预先计算了数据点之间的距离,并将它们存储在一个文件中。由于Python在I/O密集型任务中速度较慢,我正在用C++编写这个集群算法。主要问题是集群算法会运行几次,我必须在python代码和C++代码之间切换。像这样的

Read Distances from text_file (C++)
Run Clustering Algorithm (C++)
Use the result of this algorithm in main python code
Run clustering algorithm again (C++)

现在我不想一次又一次地阅读距离文件,因为它已经需要大约17秒,并且该文件有超过5亿个条目。比如暂停C++代码的执行,并在需要时再次运行代码。那么,这是如何实现的呢??

只是一个想法:

你可以在你的主python程序中运行程序的c++部分吗。您可以通过查看[在Python中调用外部命令]中的答案来做到这一点。您可以使用适配器设计模式在c++程序中预处理输出,使其与主Python程序中使用的数据结构兼容,反之亦然。