Llamar a un programa externo en Python

Manav Narula 30 enero 2023
  1. Utilice la función os.system() para ejecutar comandos del sistema externo en Python
  2. Utilice la función os.popen() para ejecutar comandos externos del sistema en Python
  3. Utilice la función subprocess.Popen() para ejecutar comandos externos del sistema en Python
  4. Utilice la función subprocess.call() para ejecutar comandos externos del sistema en Python
  5. Utilice la función subprocess.run() para ejecutar comandos externos del sistema en Python
Llamar a un programa externo 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 Narula avatar Manav Narula avatar

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

Artículo relacionado - Python Process