GNU/Linux >> Tutoriales Linux >  >> Linux

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

commands.getstatusoutput funcionaría bien para esta situación. (Obsoleto desde Python 2.6)

import commands
print(commands.getstatusoutput("cat syscall_list.txt | grep f89e7000 | awk '{print $2}'"))

os.popen funciona para esto. popen:abre una tubería hacia o desde el comando. El valor devuelto es un objeto de archivo abierto conectado a la tubería, que se puede leer. split('\n') convierte la salida en lista

import os
list_of_ls = os.popen("ls").read().split('\n')
print list_of_ls
import os
list_of_call = os.popen("cat syscall_list.txt | grep f89e7000 | awk '{print $2}'").read().split('\n')
print list_of_call

Utilice el subprocess módulo en su lugar:

import subprocess
output = subprocess.check_output("cat syscall_list.txt | grep f89e7000 | awk '{print $2}'", shell=True)

Editar:esto es nuevo en Python 2.7. En versiones anteriores, esto debería funcionar (con el comando reescrito como se muestra a continuación):

import subprocess
output = subprocess.Popen(['awk', '/f89e7000/ {print $2}', 'syscall_list.txt'], stdout=subprocess.PIPE).communicate()[0]

Como nota al margen, puede reescribir

cat syscall_list.txt | grep f89e7000

Para

grep f89e7000 syscall_list.txt

E incluso puede reemplazar la declaración completa con un solo awk guión:

awk '/f89e7000/ {print $2}' syscall_list.txt

Llevando a:

import subprocess
output = subprocess.check_output(['awk', '/f89e7000/ {print $2}', 'syscall_list.txt'])

Linux
  1. Obtener el complemento del resultado de un comando Ls?

  2. Linux:¿cómo desactivar la variable de entorno 'http_proxy' en Python?

  3. ¿Hay alguna manera de encontrar el tiempo de ejecución del último comando ejecutado en el shell?

  4. ¿Cómo instalo un script para que se ejecute en cualquier lugar desde la línea de comandos?

  5. ¿Cómo configurar la variable de entorno dentro de GDB usando el comando de shell?

Cómo ejecutar un comando de Shell con Python

Cómo almacenar un comando de Linux como una variable en el script de Shell

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

¿Cómo puedo recorrer la salida de un comando de shell?

¿Cómo ejecutar el comando Vim desde el shell?

Almacenamiento de resultados de gdallocationinfo como variable en Python