这个问题与:
有关python, subprocess: reading output from subprocess
如果P是使用
行的命令启动的子进程import subprocess
P = subprocess.Popen ("command", stdout=subprocess.PIPE)
我们可以读取P.stdout.readline()产生的输出P.这是一个阻塞读取。如何检查输出是否准备好读取(没有阻塞)?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您使用* nix,那么您可以使用select模块轮询stdout文件描述符
import subprocess
import select
poller = select.epoll()
P = subprocess.Popen ("command", stdout=subprocess.PIPE)
poller.register(P.stdout, select.EPOLLHUP)
while True:
#block indefinitely: timeout = -1
#return immediately: timeout = 0
for fd, flags in poller.poll(timeout=0)
foo = P.stdout.readline()
#do something else before the next poll