Leí esto en alguna parte hace un 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 guión será:
command 'ls -l'
Saldrá el resultado de ejecutar ese comando en la terminal
os.system("nslookup gmail.com")
Solo devuelve la última línea0
, pero quiero obtener la respuesta completa.Prefiero el uso del módulo de subproceso:
La razón es que si desea pasar alguna variable en el script, esto le brinda una forma muy fácil, por ejemplo, tome la siguiente parte del código
fuente
call(["eog", "1breeproposal.png", "-f"])
De hecho, cualquier pregunta sobre el subproceso será una buena lectura.
fuente
También deberías mirar en los comandos.getstatusoutput
Esto devuelve una tupla de longitud 2. El primero es el entero devuelto (0 - cuando los comandos son exitosos) el segundo es la salida completa como se mostrará en la terminal.
Para ls
fuente
Esto debería funcionar. No sé cómo imprimir la salida en Python Shell.
fuente
El os.popen () es bastante simple de usar, pero es obsoleta desde Python 2.6. Deberías usar el subproceso módulo de .
Leer aquí: leer un os.popen (comando) en una cadena
fuente
Jupyter
En un cuaderno jupyter puede utilizar la función mágica
!
ipython
Para ejecutar esto como un
.py
script, necesitaría usaripython
ejecutar script
fuente
Puede importar el módulo 'os' y usarlo así:
fuente
para python3 use subproceso
fuente