pythonのsubprocessから実行結果を取得する時のメモ
試したバージョンは以下の通り
$ python --version
Python 3.7.1
subprocess.run
を使う場合は以下のようにすれば良い
test.py
import subprocess
ret = subprocess.run("python --version", shell=True, stdout=subprocess.PIPE , stderr=subprocess.PIPE ,encoding="utf-8")
print(ret)
if "Python 2" in ret.stdout:
print("python")
if "Python 3" in ret.stdout:
print("python3")
実行結果
$ python test.py
CompletedProcess(args='python --version', returncode=0, stdout='Python 3.7.1\n', stderr='')
python3
参考
python で subprocess を使ってコマンドを実行する方法
標準エラー出力へ出力する (sys.stderr)