如何在 Python 中非同步執行 Shell 指令

DDD
發布: 2024-10-22 21:30:29
原創
496 人瀏覽過

How to Execute Shell Commands Asynchronously in Python

使用Python 非同步執行外部命令

作為Python 開發者,您可能會遇到需要非同步執行shell 命令的場景,讓您的腳本繼續不間斷地運作。雖然文件提供了多種呼叫外部命令的方法,但確定最合適的方法可能具有挑戰性。

os.system() 和 &

在您的實驗中,您發現在命令末尾使用 os.system() 和 & 允許非同步執行。這種方法對於啟動命令而不等待其完成確實很有效。但是,有一些缺點需要考慮。

subprocess.Popen 作為理想的解決方案

對於非同步命令執行,subprocess.Popen 是一種更全面且推薦的方法。它提供了精確的控制和管理外部進程的多功能介面。

<code class="python">from subprocess import Popen
p = Popen(['watch', 'ls'])  # Example command to run</code>
登入後複製

Popen 的好處:

  • 非同步執行:允許您的腳本繼續執行命令執行時。
  • 監控功能:您可以 poll() Popen 實例來檢查指令是否仍在執行。
  • 通訊:使用communicate() 將資料傳送到命令的stdin 或從其 stdout/stderr 接收輸出。
  • 終止:使用 Terminate() 優雅地終止進程。

結論:

雖然os.system() 表面上可以實現異步執行,但subprocess.Popen 為非同步管理功能豐富的解決方案。它的多功能性和監控功能使其成為Python中控制外部流程的首選。

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

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!