我正在尝试用Python编写程序,被告知需要运行一个.exe文件。当运行该.exe文件时,它会输出大量数据,而我需要将某一行打印到屏幕上。我相当确定我需要使用subprocess.popen
或类似的东西,但我对此一窍不通。是否有一种简单的方法让我完成这个任务?
我正在尝试用Python编写程序,被告知需要运行一个.exe文件。当运行该.exe文件时,它会输出大量数据,而我需要将某一行打印到屏幕上。我相当确定我需要使用subprocess.popen
或类似的东西,但我对此一窍不通。是否有一种简单的方法让我完成这个任务?
如果你想在进程执行完之后打印输出,@Paolo的解决方案非常完美。如果你想在进程运行时轮询输出,则需要按照以下方式进行:
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
while True:
out = process.stdout.readline(1)
if out == '' and process.poll() != None:
break
if out.startswith('myline'):
sys.stdout.write(out)
sys.stdout.flush()
就像这样:
import subprocess
process = subprocess.Popen(["yourcommand"], stdout=subprocess.PIPE)
result = process.communicate()[0]
myline
是什么? - Hamza Rashidmyline
只是一个例子。这部分代码是用来确定要打印的特定输出行的位置。 - Alex