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


研究了大半天,為了獲取持續輸出的shell指令結果,並對結果進行分析,一直因為無法控制subprocess開啟的子進程頭疼,研究了半天,參考眾多大神的博客后,終於實現,目前已時間為控制點,在實際業務中,可以通過判斷業務執行是否完成來達到停止subprocess子進程的目的。

 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'完成')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM