sai*_*hor 5 python subprocess stdout popen
我想知道是否有任何方法可以处理非阻塞的情况以及从 python 子进程流式传输stdout和stderr的情况。我已经通过这个网站浏览了几篇文章,但没有一篇文章能回答这种情况。它要么通过在另一个线程中运行读取来显示,以便主线程不受影响(或)只是如何从进程中流式传输数据。我的问题是两者的结合。我想问题出在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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1861 次 |
| 最近记录: |