我怎样才能捕捉到一个子进程的标准输出输出?
-
06-09-2019 - |
题
我想用Python语言编写一个程序,我告诉运行.exe文件。当运行这个.exe文件,它吐出了大量的数据,我需要打印出来的画面一定行。我敢肯定,我需要使用subprocess.popen
或类似的东西,但我是新来的子过程,并没有任何线索。任何人有一个简单的方法,我得到这个工作?
解决方案
像这样:
import subprocess
process = subprocess.Popen(["yourcommand"], stdout=subprocess.PIPE)
result = process.communicate()[0]
其他提示
@保罗的解决方案是完美的,如果你有兴趣在这个过程中完成执行后打印输出。如果您想查询输出,而正在运行的进程,你必须做这种方式:
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()
不隶属于 StackOverflow