GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ejecutar un comando de Shell con Python

Python es uno de los lenguajes de programación más populares que existen. Si está utilizando Linux, aprenderlo lo ayudará a automatizar flujos de trabajo y 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 usado 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.

Ejecutar los comandos de Shell con Python

1. Módulo del 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 de 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 de 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

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

Para guardar la salida, debe usar una función diferente con el módulo os. Es papa(). 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)

2. Módulo de Subproceso

Finalmente, echaremos un vistazo al módulo de subprocesos. Si realmente quiere ejecutar comandos de shell usando Python, entonces debe 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ías hacerlo? Es por el hecho de que el subproceso viene con excelentes funciones 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 obtener una mejor comprensión. Nombramos nuestro archivo para este ejemplo como subproc.py.

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

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

La primera línea del código importa el módulo de subproceso. Una vez hecho esto, ahora creamos una nueva variable llamada "list_file_names" y luego usamos la función subprocess.run(). Toma entrada en una lista. Como puede ver, ingresamos un comando de Linux, ls, que enumera los archivos y las 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", 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 los os module es más una solución directa para ejecutar un shell comando, el subproceso El módulo tiene características más potentes para activar nuevos procesos y extraer la salida. ¿De qué otras formas usas Python? Comparte tus trucos con nuestros lectores en los comentarios a continuación.


Linux
  1. Cómo dockerizar aplicaciones de Python con Miniconda

  2. Cómo usar la exportación con Python en Linux

  3. ¿Cómo almacenar el resultado de un comando de shell ejecutado en una variable en python?

  4. ¿Cómo ejecutar código en el shell de Django mediante un script de python externo?

  5. ¿Cómo ejecutar comandos de shell externos desde el controlador laravel?

Cómo monitorear el sistema Linux con el comando Glances

Cómo crear una copia de seguridad con el comando tar en Linux

Cómo ejecutar el comando / secuencia de comandos de Linux Shell en segundo plano

Cómo ejecutar comandos de Shell a través del servidor HTTP

¿Cómo ejecutar un comando en un script de Shell?

Cómo instalar Python 2.7 en CentOS 7.1 o 6.7 con Anaconda