¿Como llamar una aplicación externa a través de un comando en Python?

publicado por: Anonymous

Necesito llamar un ejecutable que esta en el mismo directorio que un script en ejecución. Yo necesito saber como hago para llamarla a través de un comando desde mi script con unos parámetros.

En la línea de comando del Windows, hago así:

miejecutable -p1 datos

De preferencia si hay una forma de ejecutarlo tanto en Python 2 como en 3.

solución

Respuesta traducida de: https://stackoverflow.com/a/89243/255257

Utiliza el módulo sobprocess en stdlib:

from subprocess import call
call(["miexecutable", "-p1", "datos"])

edición

Vale la pena mencionar que call te devuelve el código de salida del programa o comando ejecutado, que puedes recoger de la siguiente manera:

return_code = subprocess.call(["miprograma.exe", "/parametro"])  

Otra característica es que puedes realizar la llamada mediante el interprete de comandos del sistema, pasando el parámetro shell=True, así:

return_code = subprocess.call("echo Hello World", shell=True)  

La ventaja de utilizar subprocess versus system es que es más flexible (puedes obtener tanto stdout como stderr, el código de salida “real”, mejor manejo de errores, etc.).

os.system es obsoleto, o lo será pronto:

https://docs.python.org/2/library/subprocess.html#replacing-older-functions-with-the-subprocess-module

Para scripts de una corrida, o soluciones rápidas y sucias, os.system es suficiente:

os.system("miexecutable -p1 datos")
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *