Как запустить exe файл с помощью аргументов с помощью python
Предположим, что у меня есть файл 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])
но это не сработало.
Ответы
Ответ 1
Вы также можете использовать 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
. Вы можете прочитать больше на этот вопрос.
Ответ 2
os.system("/path/to/exe/RegressionSystem.exe -config "+str(config)+" filename")
Должен работать.
Ответ 3
Принятый ответ устарел. Для всех, кто нашел это, вы можете теперь использовать subprocess.run()
. Вот пример:
import subprocess
subprocess.run(["RegressionSystem.exe", "-config filename"])
Аргументы также могут быть отправлены в виде строки, но вам нужно установить shell=True
. Официальную документацию можно найти здесь.