コンテンツにスキップ

subprocess で標準出力の結果を文字列として取得する

subprocess.runはデフォルトでは標準出力を保存しない。出力をキャプチャした場合も、text=Trueを指定しなければstdoutはバイト列になる。capture_outputとtextのオプションを組み合わせることで、標準出力の結果を文字列として取得できる。

subprocess で標準出力の結果を文字列として取得する方法

import subprocess
output_text = subprocess.run('echo 1', capture_output=True, text=True).stdout

capture_output=Trueで出力が受け取れるようになり、text=Trueで結果を文字列として受け取れるようになる。

参考