Supposons que j'ai un fichier RegressionSystem.exe
. Je veux exécuter cet exécutable avec un -config
argument. La ligne de commande doit ressembler à:
RegressionSystem.exe -config filename
J'ai essayé comme:
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])
mais ça n'a pas marché.
Vous pouvez également utiliser subprocess.call()
si vous le souhaitez. Par exemple,
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)
La différence entre call
et Popen
est essentiellement que call
bloque tandis que Popen
ne l'est pas, avec Popen
fournissant des fonctionnalités plus générales. Généralement, call
convient à la plupart des applications, il s'agit essentiellement d'une forme pratique de Popen
. Vous pouvez en savoir plus sur cette question .
os.system("/path/to/exe/RegressionSystem.exe -config "+str(config)+" filename")
Devrait marcher.
La réponse acceptée est obsolète. Pour quiconque trouve cela, vous pouvez maintenant utiliser subprocess.run()
. Voici un exemple:
import subprocess
subprocess.run(["RegressionSystem.exe", "-config filename"])
Les arguments peuvent également être envoyés sous forme de chaîne, mais vous devrez définir Shell=True
. La documentation officielle peut être trouvée ici .