サブプロセスを実行する
subprocessクラスを使って、プログラムの中で別のプロセスを起動する。
以下のコードで正常に動作することを確認した。
import subprocess import sys, time itime=0 cmd = "python cmdtest.py" p=subprocess.Popen(cmd, stdout=subprocess.PIPE) while (p.poll()==None): itime +=1 sys.stdout.write('.') time.sleep(0.2) print "completed" print p.stdout.read() # display results of cmdtest
Popenメソッドの引数の"stdout=subprocess.PIPE"で、サブプロセスと親の間のパイプを作る。
p.poll()でサブプロセスの終了を確認する(Noneは未終了)。
p.stdout.read()でサブプロセスからの出力を表示する。