pythonで外部コマンドを実行する

os.system("文字列")は古いコードで推奨されないらしい。代りにsubprocess.Popenを使うのがよいそうだ。さらに、subprocess.Popenには、subprocess.callというラッパー関数があるので、これを使えばさらにコードが簡単になる。

単に外部コマンドを実行する場合

from subprocess import call
call(["mount","/boot"])

外部コマンドの出力を利用する場合

from subprocess import Popen,PIPE
ls_result = Popen(["ls","-l"], stdout=PIPE).communicate()[0]
print ls_result

communicate()を呼ぶのがミソ