2013-04-10 15 views
8

Załóżmy, że mam plik RegressionSystem.exe. Chcę wykonać ten plik wykonywalny z argumentem -config. Linii poleceń powinien wyglądać:jak uruchomić plik exe z argumentami za pomocą python

RegressionSystem.exe -config filename 

Próbowałem tak:

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]) 

ale to nie działa.

+3

To nie działa w jaki sposób? Co to jest komunikat o błędzie? –

Odpowiedz

2
os.system("/path/to/exe/RegressionSystem.exe -config "+str(config)+" filename") 

Powinien działać.

10

Możesz również użyć subprocess.call(), jeśli chcesz. Na przykład,

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) 

Różnica między call i Popen jest w zasadzie, że call blokuje podczas Popen nie jest z Popen zapewniając bardziej ogólną funkcjonalność. Zazwyczaj call jest w porządku dla większości zastosowań, jest to zasadniczo wygodna forma Popen. Możesz przeczytać więcej na this question.

Powiązane problemy