Llamar a un programa externo en Python
-
Utilice la función
os.system()
para ejecutar comandos del sistema externo en Python -
Utilice la función
os.popen()
para ejecutar comandos externos del sistema en Python -
Utilice la función
subprocess.Popen()
para ejecutar comandos externos del sistema en Python -
Utilice la función
subprocess.call()
para ejecutar comandos externos del sistema en Python -
Utilice la función
subprocess.run()
para ejecutar comandos externos del sistema en Python
En Python, tenemos diferentes módulos y funciones disponibles para comunicarnos y obtener respuestas del sistema operativo. Python también tiene métodos que pueden ejecutar programas externos.
En este tutorial, discutiremos cómo llamar a un programa externo en Python.
Utilice la función os.system()
para ejecutar comandos del sistema externo en Python
El módulo os
en Python puede interactuar con el sistema operativo del dispositivo y tiene funciones disponibles para ejecutar comandos de shell. La función system()
implementa un comando, que se le pasa como una cadena, en una subshell. Devuelve el estado de salida del shell, que el sistema operativo devuelve después de ejecutar el comando dado. Permite ejecutar varios comandos a la vez y llamar a programas externos, no a comandos de shell.
Por ejemplo,
import os
os.system("echo Hello World")
Utilice la función os.popen()
para ejecutar comandos externos del sistema en Python
Otra función del módulo os
para ejecutar comandos de programas externos es la función popen()
. Este método abre una tubería relacionada con el comando. Es similar a la función os.system()
, pero proporciona un objeto de tipo archivo que ayuda con las operaciones de entrada y salida relacionadas con el comando. Podemos especificar el modo de archivo para el archivo y el tamaño del búfer como parámetro en la función.
Por ejemplo,
import os
os.popen("echo Hello World")
Tenga en cuenta que hay 4 tipos de función popen()
disponibles en Python 2. La diferencia entre ellos está en la salida de estas 4 funciones.
Utilice la función subprocess.Popen()
para ejecutar comandos externos del sistema en Python
El módulo subprocess
es similar al módulo os
y tiene funciones y métodos mejorados para llamar a programas externos. El Popen
es una clase y no un método. Es un poco complicado usar esto debido a varios parámetros que deben especificarse junto con el comando requerido. Combina las 4 funciones os.popen()
en una. También ejecuta el programa externo como un proceso separado. El siguiente código muestra cómo usar esto.
import subprocess
subprocess.Popen("echo Hello World", shell=True, stdout=subprocess.PIPE).stdout.read()
Utilice la función subprocess.call()
para ejecutar comandos externos del sistema en Python
La función call()
es una mejora de la función popen()
. Sin embargo, a diferencia de la función popen()
, espera a que se ejecute el comando antes de proporcionar el código de retorno. Pasamos el comando como argumento a la función.
Por ejemplo,
import subprocess
subprocess.call("echo Hello World", shell=True)
Utilice la función subprocess.run()
para ejecutar comandos externos del sistema en Python
En Python v3.5 y superior, la función run()
se usa con más frecuencia para ejecutar comandos de programa. Devuelve un objeto de proceso completado después de ejecutar el comando, pasado a la función como parámetro.
Por ejemplo,
import subprocess
print(subprocess.run("echo Hello World", shell=True))
Tenga en cuenta que se prefiere el módulo subprocess
sobre el módulo os
para ejecutar comandos externos en Python.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn