Чтение значений из запущенной программы - PullRequest
1 голос
/ 23 января 2012

В программе DOS .exe (без доступа к исходному коду) на экране DOS отображается: rate = 60. (или какое-либо другое значение).

Как прочитать вывод «60» дляиспользовать в качестве входных данных для приложения, которое я создаю на Python или C / C ++, кроме чтения и ввода его (я хочу запускать его десятки раз).

Эта программа работает в режиме Windows XP.

Ответы [ 5 ]

5 голосов
/ 23 января 2012

Используйте модуль subprocess. Есть несколько разных способов; наиболее распространенным является использование объекта Popen.

>>> import subprocess
>>> proc = subprocess.Popen(['echo', 'rate = 60'], stdout=subprocess.PIPE,
                                                   stdin=subprocess.PIPE, 
                                                   stderr=subprocess.PIPE)
>>> proc.communicate()
('rate = 60\n', '')

Если вы используете Python 2.7 или выше, вы также можете использовать subprocess.check_output.

2 голосов
/ 23 января 2012

В питоне:

import commands
commands.getoutput(cmd)

http://docs.python.org/library/commands.html#commands.getoutput

1 голос
/ 23 января 2012

Попробуйте Модуль подпроцесса для запуска dos.exe программы из кода Python.

import shlex
cmdline = "command to execute your exe file"
cmd = shlex.split(cmdline)
output_process = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE).communicate()
0 голосов
/ 23 января 2012

Вы также можете вызвать приложение из вашего приложения и сохранить возвращаемое значение, используя ShellExecute .

0 голосов
/ 23 января 2012

Вы можете использовать трубу. prgm.exe | anotherprogram.exe Просто помните, что другая программа получит весь вывод prgm.exe

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