subprocessモジュールで外部プロセスを実行できる
call、check_call、check_outputと関数があってちょっとずつ挙動が異なる
subprocess.callはプロセスを実行し、returncodeを返す
from subprocess import call # call call(["ls", "-l"]) print return_code # => 0
subprocess.check_callはreturncodeが0でない場合にCalledProcessErrorをraiseする
戻り値はreturncode
from subprocess import check_call, CalledProcessError # check_call try: check_call(["ls", "-Z"]) except CalledProcessError, e: print e.returncode #=> 1
subprocess.check_outputはreturncodeが0でない場合にCalledProcessErrorをraiseするのはcheck_callと同じだが
コマンド実行結果を文字列で返す
from subprocess import check_output # check_output out = check_output(["ls", "-l"]) print out.__class__ # => <type 'str'>