Python通過subprocess.Popen.poll控制流程


python寫流程控制的時候,有時需要等待運行結果完成才能進行下一步。有幾個想法:

  • 一是反復循環判斷直到生成結果文件(且文件中有預期結果),低效易出錯;
  • 二是用subprocess模塊來判斷進程結果,較為常用;
  • 三是用drmaa包,功能強大,但使用相對復雜。

這次介紹如何用subprocess來實現。subprocess中的poll函數有以下幾種返回碼:

  • 0 正常結束
  • 1 sleep
  • 2 子進程不存在
  • 5 kill
  • None 在運行

示例代碼:

import subprocess

proc = subprocess.Popen(['python', 'test.py'], stdout=subprocess.PIPE)
while True:
  flag = 1
  if proc.poll() is None:
    flag = 0
  if flag:
    break
  else:
    print("Task is running")
    time.sleep(100)

https://www.cnblogs.com/nerrissa/p/5375206.html


免責聲明!

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



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