2011-09-29 132 views
5

我想从Python调用一个用C++编写并编译的程序(.exe)。可执行文件将两个文件作为输入并返回分数。从python调用外部程序并得到它的输出

我需要为多个文件执行此操作。所以,我想在Python中编写一个小脚本,它循环多个文件,将它们传递给可执行文件并获取值。

现在,我已经完成了我的搜索,我知道关于SWIG和Boost :: Python可能是一个选项,但我试图找到是否有更简单的方法。我不需要'扩展'C++程序。我只是想像我从命令行那样调用它并获取返回的数字。

+1

试试这个问题:http://stackoverflow.com/questions/2919783/python-calling-a-non-python-program-from-python – TorelTwiddler

+0

@TorelTwiddler这不是他想要做什么 - 这个问题的答案只是回报返回代码,而不是程序的输出。 – agf

+0

正确的重复是[什么是相当于python的subprocess.check_call,返回标准输出的内容?](http://stackoverflow.com/questions/2924310/whats-a-good-equivalent-to-pythons-subprocess-勾选叩认为,回报最康特) – agf

回答

5

运行外部程序,并得到它的输出,对Python的使用2.7+ subprocess.check_output。从文档的例子:

>>> subprocess.check_output(["ls", "-l", "/dev/null"]) 
'crw-rw-rw- 1 root root 1, 3 Oct 18 2007 /dev/null\n' 

check_call刚刚返回的程序,而不是输出的返回码。

相关问题