Python でシェルコマンドを非同期的に実行する方法

DDD
リリース: 2024-10-22 21:30:29
オリジナル
496 人が閲覧しました

How to Execute Shell Commands Asynchronously in Python

Python で外部コマンドを非同期に実行する

Python 開発者として、シェル コマンドを非同期に実行する必要があるシナリオに遭遇することがあります。スクリプトを中断せずに実行し続けることができます。ドキュメントには外部コマンドを呼び出す多数の方法が記載されていますが、最も適切なアプローチを決定するのは困難な場合があります。

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 の利点:

  • 非同期実行: スクリプトの実行を継続できます。コマンドの実行中。
  • モニタリング機能: Popen インスタンスを poll() して、コマンドがまだ実行中かどうかを確認できます。
  • 通信: communication() を使用して、コマンドのインスタンスにデータを送信します。
  • 終了: terminate() を使用してプロセスを正常に終了します。

結論:

os.system() は表面的には非同期実行を実現できますが、subprocess.Popen は外部コマンドを非同期で管理するための、より堅牢で機能が豊富なソリューションを提供します。その多用途性と監視機能により、Python で外部プロセスを制御するための好ましい選択肢となっています。

以上がPython でシェルコマンドを非同期的に実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!