Cómo ejecutar un comando de Shell con Python

PAGython es uno de los lenguajes de programación más populares que existen. Si está utilizando Linux, aprenderlo le ayudará a automatizar los flujos de trabajo y los scripts.

La utilidad de Python proviene de su facilidad de uso y su biblioteca estándar. Con él, puede ejecutar con éxito comandos de shell, y ese es el tema de nuestro tutorial de hoy.

En la mayoría de los casos, es posible que haya utilizado un archivo bash o por lotes para ejecutar sus comandos, pero también podrá hacerlo en Python. Lo guiaremos sobre cómo ejecutar el comando de shell con Python.

Índice

Ejecutando los comandos de Shell con Python

1. Módulo de SO

Una de las formas más fáciles y seguras de ejecutar el comando de shell a través de Python es usar os.system ().

Guardemos nuestro archivo Python como usingos.py.

A continuación se muestra el código que necesita para usarlo dentro de sus datos.

import os
os.system('ls')

En el archivo Python, primero importamos el módulo os y luego llamamos al método del sistema () para pasar el comando que desea ejecutar. Como puede ver, ejecutamos el comando "ls" en él. Si ejecuta el archivo python, obtendrá el siguiente resultado.

python usingos.py

os-example-ls
Ejecutando el comando ls usando el módulo os de Python

Sin embargo, el uso del módulo del sistema operativo es muy limitado. En primer lugar, no podrá guardar la salida en una variable.

Para guardar la salida, necesita usar una función diferente con el módulo os. Es popen (). Simplemente abre una tubería hacia y desde una línea de comando. Al hacerlo, se puede acceder a la secuencia de Python y, por lo tanto, los valores se pueden almacenar en una variable.

Guardemos nuestro nuevo script de Python como savevalue.py

En su interior, debe escribir el siguiente código.

import os
stream = os.popen('eThe value is now returned')
output = stream.read()
print (output)

popen-python
Usando popen

2. Módulo de subproceso

Finalmente, echaremos un vistazo al módulo de subprocesos. Si se toma en serio la ejecución de comandos de shell con Python, entonces debería usar el método de subproceso. Necesita su versión de Python 3.5 o superior para usar el módulo de subproceso.

Pero, ¿por qué debería hacerlo? Es por el hecho de que el subproceso viene con excelentes características que funcionan bien cuando se trabaja con comandos de shell en Python. Por ejemplo, podrá almacenar los resultados en variables y también iniciar un nuevo proceso sin intentar reinventar la rueda.

Echemos un vistazo a un ejemplo para comprenderlo mejor. Nombramos nuestro archivo para este ejemplo como subproc.py.

Dentro de él, debe usar el siguiente código.

import subprocess
list_file_names = subprocess.run(['ls'])
print ("Here are the files %d" %list_file_names.returncode)

subproc-ejemplo-1
Muestra cómo funciona el módulo de subproceso.

La primera línea del código importa el módulo de subproceso. Una vez hecho esto, creamos una nueva variable llamada "list_file_names" y luego usamos la función subprocess.run (). Toma entrada en una lista. Como puede ver, colocamos un comando de Linux, ls, que enumera archivos y carpetas.

Por último, imprimimos la variable con un código de retorno.

Para pasar un argumento al comando, debe pasar el argumento como otro elemento de la lista. Entonces, si desea pasar el argumento "-l" a "ls", entonces la lista será la siguiente:

["ls","-l"]

Conclusión

Nos lleva a la finalización de nuestro tutorial sobre cómo ejecutar el comando Shell con Python usando el os y subproceso módulos. Mientras que la os módulo es más una solución sencilla para ejecutar un cascarón comando, el subproceso El módulo tiene funciones más potentes para activar nuevos procesos y extraer la salida. ¿De qué más formas usas Python? Comparta sus trucos con nuestros lectores en los comentarios a continuación.

Deja una respuesta

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

Subir