首页 > 解决方案 > 如何在程序运行时读取python中的输出

问题描述

我想听一个用 AutoIT 编写的程序的输出。我开始程序:

p = Popen(shlex.split(args),stdout=PIPE, stdin=PIPE, bufsize=1)

有用。在某处我读到我应该使用 -u 来绕过缓冲,但我不能在 AutoIT 程序中使用它。问题是,虽然它在早期将给定的文本写入标准输出,但我似乎听不到它。我必须停止程序,然后下面给我输出。

while p.poll() is None:
    p.stdout.flush()
    txt = p.stdout.read().decode('utf-8')
    if txt == 'Given text':
        break

如何在生成时而不是在程序停止后获取输出?

标签: pythonstdoutpopen

解决方案


推荐阅读