ホームページ >バックエンド開発 >Python チュートリアル >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 スクリプトは、外部コマンドがアクティブなままでも独自のタスクを続行できます。必要に応じて、Popen インスタンスは terminate() メソッドを使用して終了できます。
さらに、Popen は、ステータスのポーリング、標準入力を介した入力の送信、終了の待機などの追加機能を提供します。 subprocess.Popen を利用すると、非同期の外部コマンドの実行を Python スクリプトにシームレスに統合できます。
以上がPython から外部コマンドを非同期に実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。