2024-04-25 20:18:06 发布
网友
这个问题涉及:
python, subprocess: reading output from subprocess
如果p是一个子进程,它是由一个命令启动的
import subprocess P = subprocess.Popen ("command", stdout=subprocess.PIPE)
我们可以读出p产生的输出。标准输出读取线(). 不过,这是一个阻塞读取。如何检查是否有可供读取的输出(无阻塞)?在
如果使用的是*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
遵循SO:
如果使用的是*nix,那么可以使用select模块来轮询stdout文件描述符
遵循SO:
相关问题 更多 >
编程相关推荐