使用python子进程Popen

时间:2019-02-27 09:56:41

标签: python subprocess stdout popen

我想知道是否有任何方法可以处理非阻塞情况以及从python子流中传输stdoutstderr。我已经在该网站上浏览了几篇文章,但是都没有针对这种情况的答案。它可以通过在另一个线程中运行读取来显示,从而使主线程不受影响(或)仅如何从流程中流式传输数据。我的问题是两者的结合。我猜问题出在read()readline()的地方,因为它们在输出流期间阻塞了一种或另一种方式。

我想拥有一个主要关注的可流对象。我将附上我已经阅读过的参考资料,以供进一步参考。

script_process = subprocess.Popen(command_sequence[i],preexec_fn=os.setsid, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    while script_process.poll() is None:
       for output in iter(lambda: script_process.stdout.readline(), b''):
           sys.stdout.writelines(output)

Non-blocking read on a subprocess.PIPE in python

Reliable non blocking reads from subprocess stdout

printing stdout in realtime from a subprocess that requires stdin

Constantly print Subprocess output while process is running

Is it possible to stream output from a python subprocess to a webpage in real time?

How to create non-blocking continuous reading from `stdin`?

0 个答案:

没有答案