Python subprocess執行持續輸出shell命令的控制

研究了大半天,爲了獲取持續輸出的shell指令結果,並對結果進行分析,一直由於沒法控制subprocess開啓的子進程頭疼,研究了半天,參考衆多大神的博客後,終於實現,目前已時間爲控制點,在實際業務中,能夠經過判斷業務執行是否完成來達到中止subprocess子進程的目的。shell

 1 #程序執行終止時間爲當前時刻延遲15秒
 2 stoptime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()+10))
 3 def run_adbshell():
 4     p = subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
 5     while True:
 6         line=p.stdout.readline().strip()
 7         print(line)
 8         #當前時間
 9         curtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
10         if curtime>=stoptime:
11             #終止子進程
12             p.terminate()
13             #等待子進程終止後跳出while循環
14             if subprocess.Popen.poll(p) is not None:
15                 break
16             else:
17                 print(u'等待subprocess子進程終止。')
18     print(u'完成')
相關文章
相關標籤/搜索