从C ++程序运行python程序?

时间:2014-09-22 05:08:14

标签: python c++ terminal

我一直在使用python中的Selenium,我真的想让现有的C ++程序运行我的python代码。

基本上,我的python代码只找到一个网站,并下载该文件,之后我的C ++程序想要打开文件并对其进行一系列操作。如果我有一个myPythonCode.py文件,以及我的其他C ++文件(header.h,main.cpp,otherFunctions.cpp ...),我将如何从我的C ++程序中运行python代码?

我的两个程序都是控制台程序,我希望用户可以在运行程序时获得不间断的体验(例如,如果用户想要在运行C ++程序时下载文件,则终端不会这样做。 t必须关闭,或打开一个不同的窗口来启动python程序)。任何有关此事的帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

它是特定于操作系统的,C++11标准没有定义任何函数(system(3)除外,它在C99中,而std::system在C ++ 11中)。在Linux(以及其他POSIX系统)上,请阅读Advanced Linux Programming并考虑使用systempopen(3),或者更多可能使用syscalls(2)之类的fork(2) 3}},execve(2)pipe(2)dup2(2)等等......你可能需要一些IPC,你可能需要一些event loop左右多路复用系统调用,如poll(2)

您可以使用一些C ++框架,例如QtPoco(两者都具有流程抽象,可在多个操作系统上使用,甚至可以在Microsoft的专有操作系统上使用)

如果您希望C ++程序在Linux上具有终端接口,请考虑ncurses和/或readline

BTW,存在HTTP的几个C或C ++库,例如HTTP客户端libcurl,HTTP服务器端libonion。因此,您可以避免使用Python程序并将下载合并到C ++应用程序中。

答案 1 :(得分:0)

签出boost库,该库允许在C ++上运行python并在python中使用您的C ++。 https://www.boost.org/doc/libs/1_49_0/libs/python/doc/