C++ 从正在运行的程序中读取值
在DOSC++ 从正在运行的程序中读取值,c++,python,c,windows,io,C++,Python,C,Windows,Io,在DOS.exe程序(无法访问源代码)中,DOS屏幕显示:rate=60。(或其他值) 如何读取输出“60”以用作我正在用Python或C/C++制作的应用程序的输入, 除了阅读和打字(我想运行几十次) 此程序在Windows XP模式下运行。您可以使用管道。 prgm.exe |另一个程序.exe 请记住,另一个程序将获得prgm.exe的全部输出,您可以使用pipe。 prgm.exe |另一个程序.exe 请记住,另一个程序将在python中获得prgm.exe的全部输出: import
.exe
程序(无法访问源代码)中,DOS屏幕显示:rate=60。
(或其他值)
如何读取输出“60”以用作我正在用Python或C/C++制作的应用程序的输入,
除了阅读和打字(我想运行几十次)
此程序在Windows XP模式下运行。您可以使用管道。
prgm.exe |另一个程序.exe
请记住,另一个程序将获得prgm.exe的全部输出,您可以使用pipe。
prgm.exe |另一个程序.exe
请记住,另一个程序将在python中获得prgm.exe的全部输出:
import commands
commands.getoutput(cmd)
在python中:
import commands
commands.getoutput(cmd)
使用该模块。有几种不同的方法;最常用的方法是使用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或更高版本,那么您也可以使用。使用该模块。有几种不同的方法;最常用的方法是使用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或更高版本,那么您也可以使用。您还可以从应用程序调用应用程序并使用存储返回值。您也可以从应用程序调用应用程序并使用存储返回值。尝试使用模块从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()
尝试使用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()
“”@senderle,谢谢,然后让子进程标记的答案正确!“”@senderle,谢谢,然后让子进程标记的答案正确!正如的帖子所示,
shlex
模块可以用于将命令行分解为正确解析的列表,以便输入到Popen
构造函数中,shlex
模块可用于将命令行分解为正确解析的列表,以便输入到Popen
构造函数中。