ファイルRegressionSystem.exe
があるとします。 -config
引数を指定してこの実行可能ファイルを実行します。コマンドラインは次のようになります。
RegressionSystem.exe -config filename
私は次のように試しました:
regression_exe_path = os.path.join(get_path_for_regression,'Debug','RegressionSystem.exe')
config = os.path.join(get_path_for_regression,'config.ini')
subprocess.Popen(args=[regression_exe_path,'-config', config])
しかし、うまくいきませんでした。
必要に応じて subprocess.call()
を使用することもできます。例えば、
import subprocess
FNULL = open(os.devnull, 'w') #use this if you want to suppress output to stdout from the subprocess
filename = "my_file.dat"
args = "RegressionSystem.exe -config " + filename
subprocess.call(args, stdout=FNULL, stderr=FNULL, Shell=False)
call
とPopen
の違いは、基本的にcall
がブロックしているのに対し、Popen
はブロックしていないことです。Popen
はより一般的な機能を提供します。通常、call
はほとんどの目的に適していますが、本質的にはPopen
の便利な形式です。詳しくは この質問 をご覧ください。
os.system("/path/to/exe/RegressionSystem.exe -config "+str(config)+" filename")
動作するはずです。
受け入れられた答えは時代遅れです。これを見つけた人は誰でもsubprocess.run()
を使用できます。次に例を示します。
import subprocess
subprocess.run(["RegressionSystem.exe", "-config filename"])
引数は代わりに文字列として送信することもできますが、Shell=True
を設定する必要があります。公式ドキュメントは here にあります。