ホームページ >バックエンド開発 >Python チュートリアル >Python で非同期シェル コマンドの実行を実現する方法: ベスト プラクティスの探索
Python での非同期シェル コマンド実行: 代替アプローチの探索
Python スクリプトからの外部コマンドの非同期実行は、継続的なスクリプト実行を可能にする貴重な手法です。外部コマンドがタスクを実行している間。この記事では、os.system() と subprocess.Popen.
os.system() およびアンパサンド記号
の使用に焦点を当て、この非同期動作を実現するための適切な方法を検討します。コマンドの最後にアンパサンド (&) を付けて os.system() を使用すると、実際に非同期で実行される切り離されたプロセスを作成できます。ただし、この方法には制限があり、非同期実行に推奨されるアプローチとは見なされません。
subprocess.Popen - 優れた代替手段
信頼性の高い非同期コマンド実行には、subprocess を使用します。 Popen が好ましい選択です。これにより、子プロセスに対する幅広い制御が可能になり、次のことが可能になります。
• Create asynchronous processes with Popen() • Perform tasks concurrently while the child process is active • Terminate the process with terminate() • Query its running status with poll() • Communicate with it using stdin and stdout
subprocess.Popen の使用例
from subprocess import Popen p = Popen(['watch', 'ls']) # Replace with your command # Other code can run here while the command is executing p.terminate() # Stop the process when necessary
結論
os.system() は基本レベルの非同期実行を提供しますが、subprocess.Popen は子プロセスの制御と対話のためのより堅牢で柔軟なソリューションを提供します。その多用途性と使いやすさにより、Python での非同期シェル コマンド実行の推奨方法となっています。
以上がPython で非同期シェル コマンドの実行を実現する方法: ベスト プラクティスの探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。