将数据从 Python 应用程序传递到正在运行的 C++ 应用程序
pass data from a python application to a running c++ application
我用python编码到应用程序,另一个用c ++编码。在 python 应用程序的中间,我需要运行 c++ 应用程序,将一些输入传递给它并接收输出。我已经知道我可以使用子进程从 python 调用 c++ 应用程序,但由于每次调用该 c++ 应用程序时都必须进行一些初始计算,这使我的程序非常慢。所以我正在寻找的是这个:
将我的 C++ 应用程序置于无限 while 循环中并保持其运行。然后在我的 python 应用程序中,每当我需要调用 c++ 应用程序时,只需传递数据并获取输出即可。这样,我可以避免每次需要进行此调用时重复初始状态。
有没有办法这样做?就像编写另一个控制所有这些的应用程序一样。也可以有多个 python 应用程序运行实例,但我希望只运行其中一个 c++ 应用程序,因为它需要大量内存
使用子进程。Popen 你可以打开一个进程并保持打开状态,使用 stdin 和 stdout 与它通信。打开进程使用时:stdout=子进程。管道,标准=子进程。管。
然后,您可以写入 process.stdin 并从 process.stdout 读取 c++ 程序的输出。
你可以用boost python来做到这一点。设计一个在其构造函数中执行初始计算的类,以及一个执行计算的方法。你包装它并从python实例化它一次。
正如ASAFPR回答的那样,子流程解决方案也是可能的。
您还可以在C++应用程序中设置XML-RPC服务器,并使用xmlrclib模块从Python调用它。
相关文章:
- 通过C++应用程序运行 shell 脚本始于 JAVA
- CreateProcess:某些应用程序运行其他应用程序
- 从 WebAPI 项目运行静态类时出现 StackOverflow 异常 - 从控制台应用程序运行时工作正常
- 如何从我的qt应用程序运行gcc编译器?
- 应用程序运行时的 C++ 重新加载功能
- Cinder 无法在应用程序运行时更新窗口的标题
- 在应用程序运行时禁用WER
- cv::imshow在GUI应用程序运行时阻塞线程
- VBA运行声明的函数但C++控制台应用程序运行正常时堆损坏
- 从 Ubuntu 中的 Qt GUI 应用程序运行多个命令行应用程序并获取控制台输出
- 只要应用程序运行,是否可以接受保持错误日志打开状态
- 如何使用 c++ 应用程序运行控制台
- 从C++应用程序运行批处理脚本,并检查它是否具有无限循环
- WxWidgets 应用程序运行失败
- 如何防止窗口在我的 c++ 应用程序运行时进入睡眠状态
- 如何在最后一个窗口关闭时保持应用程序运行
- 如果Windows资源管理器正在运行,Direct3D应用程序运行良好,否则速度会非常慢
- 从Mono上运行的C#进程运行C++应用程序.运行检测器错误
- 从沙盒应用程序运行clang编译器的任何可能方式
- QT创建者:c++应用程序运行几次后中断