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 の利点:
結論:
os.system() は表面的には非同期実行を実現できますが、subprocess.Popen は外部コマンドを非同期で管理するための、より堅牢で機能が豊富なソリューションを提供します。その多用途性と監視機能により、Python で外部プロセスを制御するための好ましい選択肢となっています。
以上がPython でシェルコマンドを非同期的に実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。