Comando del sistema Python: os.system(), subprocess.call()

En este tutorial aprenderemos sobre el comando del sistema de Python. Anteriormente aprendimos sobre el número aleatorio de Python .

Comando del sistema Python

Al crear un programa en Python, es posible que deba ejecutar algunos comandos de shell para su programa. Por ejemplo, si usa PycharmIDE, puede notar que existe una opción para compartir su proyecto en GitHub. Y probablemente sepa que la transferencia de archivos se realiza mediante Git , que se opera mediante la línea de comandos. Entonces, Pycharm ejecuta algunos comandos de shell en segundo plano para hacerlo. Sin embargo, en este tutorial aprenderemos algunos conceptos básicos sobre la ejecución de comandos de shell desde su código Python.

Función os.system() de Python

Podemos ejecutar comandos del sistema mediante la función os.system() . Según el documento oficial, se ha dicho que

Esto se implementa llamando a la función estándar C system() y tiene las mismas limitaciones.

Sin embargo, si el comando genera alguna salida, se envía al flujo de salida estándar del intérprete. No se recomienda utilizar este comando. En el siguiente código intentaremos saber la versión de git mediante el comando system git --version.

import oscmd = "git --version"returned_value = os.system(cmd)  # returns the exit code in unixprint('returned value:', returned_value)

La siguiente salida se encuentra en Ubuntu 16.04 donde git ya está instalado.

git version 2.14.2returned value: 0

Tenga en cuenta que no estamos imprimiendo la salida del comando de versión git en la consola, se imprime porque la consola es el flujo de salida estándar aquí.

Función subprocess.call() de Python

En la sección anterior, vimos que la os.system()función funciona bien, pero no es la forma recomendada de ejecutar comandos de shell. Usaremos el módulo de subproceso de Python para ejecutar comandos del sistema. Podemos ejecutar comandos de shell mediante subprocess.call()la función. Vea el siguiente código, que es equivalente al código anterior.

import subprocesscmd = "git --version"returned_value = subprocess.call(cmd, shell=True)  # returns the exit code in unixprint('returned value:', returned_value)

Y la salida también será la misma.

Función subprocess.check_output() de Python

Hasta ahora, ejecutamos los comandos del sistema con la ayuda de Python, pero no pudimos manipular el resultado que producían esos comandos. Mediante subprocess.check_output()una función, podemos almacenar el resultado en una variable.

import subprocesscmd = "date"# returns output as byte stringreturned_output = subprocess.check_output(cmd)# using decode() function to convert byte string to stringprint('Current date is:', returned_output.decode("utf-8"))

Producirá un resultado como el siguiente

Current date is: Thu Oct  5 16:31:41 IST 2017

En las secciones anteriores, analizamos las ideas básicas sobre la ejecución de comandos del sistema de Python. Pero no hay límites para aprender. Si lo desea, puede obtener más información sobre los comandos del sistema de Python mediante el módulo subprocess en la documentación oficial .

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio