[英]How can I capture the stdout output of a child process?
我正在尝试用Python编写程序,并且我被告知要运行.exe文件。 当运行此.exe文件时,它会吐出大量数据,我需要在屏幕上打印一行。 我很确定我需要使用subprocess.popen
或类似的东西,但我是subprocess的新手并且没有任何线索。 任何人都有一个简单的方法来完成这项工作?
如果您对过程执行完毕后打印输出感兴趣,@ 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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.