首頁  >  文章  >  後端開發  >  如何在Python中非同步執行外部指令?

如何在Python中非同步執行外部指令?

Susan Sarandon
Susan Sarandon原創
2024-10-22 20:29:03686瀏覽

How to Execute External Commands Asynchronously in Python?

從 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn