サブプロセスしたい(subprocess
)
1import subprocess
2subprocess.run(コマンド)
3subprocess.run(["ls", "-l"])
Pythonのスクリプトの中でシェルコマンドなどを使う場合、subprocessモジュールを使います。 実行するコマンドは引数やオプションも含めてリスト型で指定できます。
実行結果を確認したい
1result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
2
3type(result) # CompletedProcess
4result.args
5result.returncode
6result.stdout
7result.stderr
subprocess.run
の戻り値はCompletedProcess
オブジェクトです。
戻り値を変数に代入すれば、このオブジェクトを通じて実行結果を確認できます。
capture_output
オプション、text
オプションを有効にすると、
標準出力や標準エラー出力に表示された内容を確認できます。
例外処理したい(CalledProcessError
)
1import subprocess
2
3try:
4 result = subprocess.run(コマンド, check=True)
5except subprocess.CalledProcessError as e:
6 print(f"Error: {e}")
check
オプションを有効にすると、コマンドが失敗したときに例外を発生させることができます。
subprocess
はCalledProcessError
という例外クラスを持っています。