[英]Python subprocess produced output or not
這個問題是關於:
如果P是一個以以下命令開頭的子進程
import subprocess
P = subprocess.Popen ("command", stdout=subprocess.PIPE)
我們可以讀取P.stdout.readline()產生的輸出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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.