how to run an exe file with the arguments using python

python, python-2.7, subprocess, windows

Solution

You can also use `subprocess.call()` if you want. For example,

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)

The difference between `call` and `Popen` is basically that `call` is blocking while `Popen` is not, with `Popen` providing more general functionality. Usually `call` is fine for most purposes, it is essentially a convenient form of `Popen`. You can read more at this question.

Problem

Suppose I have a file `RegressionSystem.exe`. I want to execute this executable with a `-config` argument. The commandline should be like: ``` RegressionSystem.exe -config filename ``` I have tried like: ``` 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]) ``` but it didn't work.

Original source

Related problems