Pythonのsubprocess
モジュールは、新しいプロセスを実行し、その入出力を管理するための強力なツールです。この記事では、特にPopen
関数とそのwait
メソッドに焦点を当てています。
subprocess.Popenの基本
subprocess.Popen
は、新しいプロセスを非同期で開始するためのクラスです。以下に基本的な使用方法を示します。
import subprocess
from subprocess import Popen
cmd = "your_command"
proc = Popen(cmd, shell=True)
このコードは、指定したコマンドを新しいプロセスとして実行します。
Popen.waitメソッド
Popen.wait
メソッドは、子プロセスが終了するのを待つためのメソッドです。以下に使用例を示します。
import subprocess
from subprocess import Popen
cmd = "your_command"
proc = Popen(cmd, shell=True)
proc.wait()
このコードは、新しいプロセスを開始し、そのプロセスが終了するまで待ちます。
注意点
Popen
を使用する際には、シェルインジェクションの脆弱性に注意する必要があります。コマンドを文字列で渡すときは、shell=True
を指定しますが、このときコマンド内のすべての空白やメタ文字を適切にクオートする責任はアプリケーションの責任となります。
以上、Pythonのsubprocess.Popen
とそのwait
メソッドの基本的な使い方について説明しました。これらの機能を活用することで、Pythonから他のプロセスを効率的に制御することが可能になります。