Python Script ejecuta comandos en la Terminal

Leí esto hace algún tiempo, pero parece que no puedo encontrarlo. Estoy tratando de encontrar un comando que ejecute comandos en el terminal y luego genere el resultado.

Por ejemplo: el script será:

command 'ls -l' 

Saldrá el resultado de ejecutar ese comando en el terminal.

Hay varias formas de hacerlo:

Una forma sencilla es usando el módulo os:

 import os os.system("ls -l") 

Se pueden lograr cosas más complejas con el módulo de subproceso: por ejemplo:

 import subprocess test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE) output = test.communicate()[0] 

Prefiero el uso del módulo de subproceso:

 from subprocess import call call(["ls", "-l"]) 

La razón es que si desea pasar alguna variable en el script, esto le da una forma muy fácil, por ejemplo, tome la siguiente parte del código

 abc = ac call(["vim", abc]) 
  • Entrada estándar personalizada para subproceso python

De hecho, cualquier pregunta sobre el subproceso será una buena lectura.

También debe mirar en command.getstatusoutput

Esto devuelve una tupla de longitud 2. El primero es el entero de retorno (0 – cuando los comandos son exitosos) el segundo es el resultado completo que se mostrará en el terminal.

Para ls

  import commands s=commands.getstatusoutput('ls') print s >> (0, 'file_1\nfile_2\nfile_3') s[1].split("\n") >> ['file_1', 'file_2', 'file_3'] 

El os.popen () es bastante simple de usar, pero ha quedado en desuso desde Python 2.6. Deberías usar el módulo de subproceso en su lugar.

Lee aquí: leyendo un os.popen (comando) en una cadena

 import os os.system("echo 'hello world'") 

Esto debería funcionar. No sé cómo imprimir la salida en el shell de python.

Podrías importar el módulo ‘os’ y usarlo así:

 import os os.system('#DesiredAction')