2014-09-22 102 views
0

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

基本上,我的Python代码只是找到一个网站,然后下载文件,然后我的C++程序想要打开文件并对其执行一堆操作。如果我有一个myPythonCode.py文件和我的其他C++文件(header.h,main.cpp,otherFunctions.cpp ...),我该如何去运行我的C++程序中的Python代码?

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

+0

在哪个操作系统上?顺便说一句,我觉得你的问题是关于stackoverflow脱离主题(因为你没有显示任何源代码) – 2014-09-22 05:41:59

+0

@BasileStarynkevitch我在Windows 7上运行,我有几个朋友告诉我看看std :: system for C++基本上让我的C++程序运行python代码,一旦完成,将控制权交给我的C++程序(虽然我的朋友只使用C#,但他告诉我C++不应该太远)。另外我不确定要包含哪些源代码!我的代码起作用(不管它的缺陷证明是否是另一个问题:P),但我总是从比我更有天赋的人那里获得更多帮助。 – shstyoo 2014-09-22 07:05:28

+0

如果你是一名学生,学习和使用Linux并在免费软件中寻找内容将会教你很多。 – 2014-09-22 07:19:11

回答

0

它是特定操作系统,并且C++11标准没有定义任何功能(除了system(3),C99中的C99和std::system在C++ 11中)。在Linux(和其他POSIX系统),读Advanced Linux Programming并考虑使用system,或popen(3),更可能是在低级别syscalls(2)fork(2)execve(2)pipe(2)dup2(2),等等等等....您可能需要一些IPC,你可能需要有一些event loop围绕复用系统调用像poll(2)

你可以使用一些类似于C++ QtPoco框架(两者有一个过程的抽象,并使用在多种操作系统,甚至从微软专有的)

如果你希望你的C++程序在Linux上,终端接口,考虑ncurses和/或readline

BTW,为HTTP几个C或C++库的存在,例如HTTP客户端的libcurl,以及HTTP服务器端的libonion。所以你可以避开你的Python程序,并将下载文件合并到你的C++应用程序中。