物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Pythonから外部プログラムを実行して標準出力をstrで得る

WindowsでもC++を直接呼ぶ方法があるらしいが、めんどくさいので引数で情報を渡して、標準出力で結果を得ることにする。

import subprocess

exe = 'puroguramu.exe'
arg = "hikisu" #引数が1つの例

proc = subprocess.Popen([exe, arg], stdout=subprocess.PIPE)

for line in proc.stdout: #1行ずつ標準出力を得る
    print(line.decode('utf-8')) # byteからutf-8にデコード

proc.wait() #プロセスが終わるまで待つ
print(proc.returncode) #戻り値

参照

blog.imind.jp