Python からの外部コマンドの非同期実行
外部コマンドの非同期実行は、スクリプト シナリオの一般的な要件です。 Python では、これはさまざまなアプローチで実現できます。
1 つのオプションは os.system を使用することです。これにより、最後にアンパサンド (&) を追加することでコマンドをブロックせずに実行できます。ただし、このメソッドは非推奨とみなされ、シェルの対話に関する潜在的な問題のため推奨されません。
より最適なアプローチは、外部プロセスを管理するためのより包括的で堅牢な API を提供する 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 インスタンスが作成され、コマンドとその引数が渡されます。 Python スクリプトは、外部コマンドが非同期で実行されている間に他のタスクを続行できます。その後、Popen インスタンスのステータスを問い合わせたり (たとえば、poll() を使用して)、通信したり (たとえば、communicator() を介して)、または終了したりできます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3