我想从Python调用一个用C++编写并编译的程序(.exe
)。可执行文件将两个文件作为输入并返回分数。从python调用外部程序并得到它的输出
我需要为多个文件执行此操作。所以,我想在Python中编写一个小脚本,它循环多个文件,将它们传递给可执行文件并获取值。
现在,我已经完成了我的搜索,我知道关于SWIG和Boost :: Python可能是一个选项,但我试图找到是否有更简单的方法。我不需要'扩展'C++程序。我只是想像我从命令行那样调用它并获取返回的数字。
我想从Python调用一个用C++编写并编译的程序(.exe
)。可执行文件将两个文件作为输入并返回分数。从python调用外部程序并得到它的输出
我需要为多个文件执行此操作。所以,我想在Python中编写一个小脚本,它循环多个文件,将它们传递给可执行文件并获取值。
现在,我已经完成了我的搜索,我知道关于SWIG和Boost :: Python可能是一个选项,但我试图找到是否有更简单的方法。我不需要'扩展'C++程序。我只是想像我从命令行那样调用它并获取返回的数字。
运行外部程序,并得到它的输出,对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
刚刚返回的程序,而不是输出的返回码。
您可以使用the subprocess
module。
result = subprocess.check_output(['your_program.exe', 'arg1', 'arg2'])
试试这个问题:http://stackoverflow.com/questions/2919783/python-calling-a-non-python-program-from-python – TorelTwiddler
@TorelTwiddler这不是他想要做什么 - 这个问题的答案只是回报返回代码,而不是程序的输出。 – agf
正确的重复是[什么是相当于python的subprocess.check_call,返回标准输出的内容?](http://stackoverflow.com/questions/2924310/whats-a-good-equivalent-to-pythons-subprocess-勾选叩认为,回报最康特) – agf