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