在DOS .exe
程序中(无法访问源代码),DOS屏幕显示:rate = 60.
(或其他一些值)。
如何读取输出“60”以用作我在Python或C / C ++中创建的应用程序的输入, 除了通过阅读和输入(我想运行它几十次)。
此程序在Windows XP模式下运行。
答案 0 :(得分:5)
使用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
。
答案 1 :(得分:2)
在python中:
import commands
commands.getoutput(cmd)
http://docs.python.org/library/commands.html#commands.getoutput
答案 2 :(得分:1)
尝试使用Subprocess模块从python代码运行dos.exe
程序。
import shlex
cmdline = "command to execute your exe file"
cmd = shlex.split(cmdline)
output_process = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE).communicate()
答案 3 :(得分:0)
您可以使用管道。
prgm.exe | anotherprogram.exe
请记住,另一个程序将获得prgm.exe的整个输出
答案 4 :(得分:0)
您还可以从应用中调用应用程序,并使用ShellExecute存储返回值。