2014-09-22 165 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++應用程序中。