Вызвать внешнюю программу из python и получить ее вывод - PullRequest
5 голосов
/ 30 сентября 2011

Я хочу вызвать программу (.exe), которая написана на C ++ и скомпилирована из Python.Исполняемый файл принимает в качестве входных данных два файла и возвращает оценку.

Мне нужно сделать это для нескольких файлов.Итак, я хотел бы написать небольшой скрипт на python, который перебирает несколько файлов, передает их в исполняемый файл и возвращает значения.

Теперь я выполнил поиск и знаю, что SWIG и Boost :: Python могут быть одним из вариантов, но я пытался найти более простой способ.Мне не нужно «расширять» программу на C ++.Я просто хочу позвонить так же, как из командной строки, и получить возвращенный номер.

Ответы [ 2 ]

5 голосов
/ 30 сентября 2011

Чтобы запустить внешнюю программу и получить ее вывод, используйте subprocess.check_output на Python 2.7+.Пример из документов:

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

check_call просто возвращает код возврата программы, а не вывод.

2 голосов
/ 30 сентября 2011

Для этого можно использовать модуль subprocess .

result = subprocess.check_output(['your_program.exe', 'arg1', 'arg2'])
...