Как получить вывод exe в скрипте Python? - PullRequest
6 голосов
/ 14 апреля 2009

Когда я вызываю внешнюю .exe программу на Python, как я могу получить printf вывод из приложения .exe и распечатать его в Python IDE?

Ответы [ 2 ]

19 голосов
/ 14 апреля 2009

Чтобы вызвать внешнюю программу из Python, используйте модуль подпроцесс .

Модуль подпроцесса позволяет создавать новые процессы, подключаться к их каналам ввода / вывода / ошибок и получать их коды возврата.

Пример из документа (output - это файловый объект, который обеспечивает вывод дочернего процесса.):

output = subprocess.Popen(["mycmd", "myarg"], stdout=subprocess.PIPE).communicate()[0]

Конкретный пример использования cmd интерпретатора командной строки Windows с 2 аргументами:

>>> p1 = subprocess.Popen(["cmd", "/C", "date"],stdout=subprocess.PIPE)
>>> p1.communicate()[0]
'The current date is: Tue 04/14/2009 \r\nEnter the new date: (mm-dd-yy) '
>>> 
7 голосов
/ 14 апреля 2009

Я почти уверен, что вы говорите о Windows здесь (основываясь на формулировке вашего вопроса), но в среде Unix / Linux (включая Mac) модуль команд также доступен:

import commands

( stat, output ) = commands.getstatusoutput( "somecommand" )

if( stat == 0 ):
    print "Command succeeded, here is the output: %s" % output
else:
    print "Command failed, here is the output: %s" % output

Модуль команд обеспечивает чрезвычайно простой интерфейс для запуска команд и получения статуса (код возврата) и вывода (читает из stdout и stderr). По желанию, вы можете получить только статус или просто вывод, вызвав command.getstatus () или commands.getoutput () соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...