從 Python 非同步執行外部命令
非同步執行外部命令是腳本場景中的常見需求。在 Python 中,這可以透過多種方法來實現。
一種選擇是使用 os.system,它允許透過在末尾附加一個與號 (&) 來非阻塞地運行命令。然而,由於 shell 互動的潛在問題,這種方法已被棄用,不建議使用。
更佳的方法是使用 subprocess.Popen,它提供了更全面、更強大的 API 來管理外部流程。使用 Popen,可以非同步啟動命令,從而允許 Python 腳本在外部命令在後台運行時繼續執行。
<code class="python">from subprocess import Popen p = Popen(['watch', 'ls']) # something long running # ... do other stuff while subprocess is running p.terminate()</code>
在此範例中,建立了 Popen 實例,並傳遞命令及其參數。然後,Python 腳本可以在外部命令非同步運行時繼續執行其他任務。稍後,可以查詢 Popen 實例的狀態(例如,使用 poll())、與之通訊(例如,透過 communications())或終止。
以上是如何在Python中非同步執行外部指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!