首頁  >  文章  >  後端開發  >  如何從 Python 非同步執行外部命令

如何從 Python 非同步執行外部命令

DDD
DDD原創
2024-10-22 20:46:26716瀏覽

How to Execute External Commands Asynchronously from Python

從 Python 非同步執行外部命令

在 Python 腳本編寫中,通常需要呼叫可能需要大量時間的外部命令時間完成。為了確保 Python 腳本在這些命令運行時不會停止,需要非同步執行。先前使用 os.system() 的嘗試包括使用 & 將命令與腳本流程分離,但這種方法的適用性值得懷疑。

更有效的解是 subprocess.Popen 函數。使用 Popen,您可以啟動外部命令,而不會阻止 Python 腳本的執行。請考慮以下範例:

from subprocess import Popen
p = Popen(['watch', 'ls']) # something long running
# ... do other stuff while subprocess is running
p.terminate()

此程式碼片段利用 Popen 啟動長時間運行的指令(例如「watch ls」)。然後,Python 腳本可以繼續執行自己的任務,同時外部指令保持活動狀態。在適當的情況下,可以使用 Terminate() 方法來終止 Popen 實例。

此外,Popen 還提供其他功能,例如輪詢狀態、透過 stdin 發送輸入以及等待終止。透過利用 subprocess.Popen,您可以將非同步外部命令執行無縫整合到 Python 腳本中。

以上是如何從 Python 非同步執行外部命令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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