我想从Python调用一个用C ++编写并编译的程序(.exe
)。可执行文件将两个文件作为输入并返回分数。
我需要为多个文件执行此操作。所以,我想在python中编写一个小脚本,它循环遍历多个文件,将它们传递给可执行文件并获取值。
现在,我已经完成了我的搜索,我知道SWIG和Boost :: Python可能是一个选项,但我试图找到是否有更简单的方法。我不需要'扩展'C ++程序。我只是想从命令行调用它并获取返回的数字。
答案 0 :(得分: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
只返回程序的返回码,而不是输出。
答案 1 :(得分:2)
您可以使用the subprocess
module。
result = subprocess.check_output(['your_program.exe', 'arg1', 'arg2'])