我之前提了一个问题https://ask.csdn.net/questions/7886197?utm_medium=notify.im.mustAnswerNotify.168ef0bac4d90000.a&username=afrcmg
问的是,如何使用python运行cmd命令并返回信息
回答者的回答也没什么问题,我试验了,可以用。
但是新的问题是,我要运行的cmd命令中,在cmd黑框里有很多反馈的info信息,类似这样
是否有什么解决办法,可以让我实时获取到这些info?
可以使用subprocess.Popen来启动一个新的进程,并通过subprocess.PIPE将其stdout和stderr输出流读取到Python中,实时显示其输出信息。
例如,假设要运行的cmd命令为test.bat,那么可以通过以下代码来实时显示cmd的输出信息:
import subprocess
# 启动新进程并将其输出流读取到Python中
p = subprocess.Popen(['test.bat'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# 按行读取输出流,并实时显示输出信息
for line in iter(p.stdout.readline, b''):
print(line.decode('utf-8').strip())
# 等待进程退出
p.wait()
这样就可以实时获取到test.bat命令的输出信息,包括info信息。其中p.stdout.readline会按行读取进程的输出流,iter()会将其变成可迭代对象,当读取到空字节(即进程输出流结束)时退出循环。