¿Alguien sabe cómo comprobar el estado del último comando ejecutado (código de salida) en ipython?Verificar el estado de salida del último comando en ipython
Respuesta
que suponer que usted está hablando acerca de cómo ejecutar comandos desde IPython usando el escape !
:
In[1]: !echo hello
hello
In[2]:
Usando Google me encontré con la documentación y no hay ninguna mención sobre el estado de salida del comando de ser capturado en cualquier lugar. Utilizando dir()
busqué un nombre de variable que pudiera contener esa información y no encontré nada. Probé la sintaxis x = !ls
y x
se establece en una lista de líneas de salida desde el comando; no hay estado de salida allí.
En resumen, no creo que IPython siquiera esté capturando esta información. En este punto, me gustaría verificar el código fuente de IPython para tratar de descubrir algo más.
Siempre puede ejecutar el comando con os.system()
y obtener un estado de salida de eso.
In[1]: !launch_eva
launch_eva: could not open AT Field
In[2]: import os
In[3]: exit_status = os.system("launch_eva")
launch_eva: could not open AT Field
In[4]: exit_status
3
In[5]:
Así vemos el comando launch_eva
está devolviendo el código de salida 3 cuando no se puede abrir un campo AT.
Parece que esto es algo que IPython debería estar guardando. Hay muchas pequeñas variables ocultas. Debe presentar una solicitud de función sobre esto.
NOTA: Esto se probó en IPython 0.10.1 en Ubuntu. Otra respuesta, por "piotr", dice que el código de salida se capturará en IPython 0.11, debido a su lanzamiento pronto. Cloné el código fuente del repositorio de Git al https://github.com/ipython/ipython.git y lo probé con python ipython.py
; como dijo piotr, el estado de salida se guarda en una variable llamada _exit_status
.
+1 para la referencia de Evangelion. :) –
Me preguntaba si alguien lo notaría y lo disfrutaría. :-) – steveha
Debe almacenarse como _exit_code
después de ejecutar el comando (al menos en la próxima versión v0.11).
¡Gracias por esta información! Yo voté a favor esto – steveha
a partir de 0.13.2, esto funciona, pero no si capturo stdout con "a =! False" (si capturo stdout '_exit_code' no cambia). Alguien sabe si hay una solución? –
- 1. Salida del último comando de shell
- 2. ¿Cómo leo la salida del comando IPython% prun (profiler)?
- 3. Capistrano & Bash: ignorar el estado de salida del comando
- 4. Cómo verificar el último dígito del número
- 5. Obteniendo el código de estado de salida del comando 'ftp' en el shell de linux
- 6. conseguir el estado de salida y la salida de shell_exec()
- 7. En Python: cómo ejecutar el comando del sistema sin salida
- 8. Filtrando la salida del comando de Linux
- 9. T y estado de salida
- 10. ¿Log de la salida de IPython?
- 11. ¿Cómo verificar el estado del apartamento del hilo actual?
- 12. Último comando en el mismo terminal
- 13. Comando de Windows para obtener el estado del servicio?
- 14. ignorando el código de salida del comando en Linux
- 15. PHP ssh2_exec estado de salida del canal?
- 16. cómo repetir el último comando en OCaml interpreter shell
- 17. Obtener el estado de retorno Y la salida del programa
- 18. obtener la salida del comando shell_exec como comando ejecuta
- 19. Verificar el estado de un intermediario ActiveMQ
- 20. Obteniendo los argumentos del último comando invocado en powershell?
- 21. Cómo verificar el estado del servidor PostgreSQL Mac OS X
- 22. Salida del comando Pipe, pero conserve el código de error
- 23. instalando Reportlab (error: el comando 'gcc' falló con el estado de salida 1)
- 24. ¿Cómo puedo verificar el uso de memoria de los objetos en iPython?
- 25. No se puede instalar Orange: "error: el comando 'clang' falló con el estado de salida 1"
- 26. Códigos de estado del shell en make
- 27. IPython en Emacs. Evaluación rápida del código
- 28. salida() con el mensaje de estado y salida
- 29. ruby at_exit estado de salida
- 30. Vim "¿mostrar mi último comando"?
¿Estás mirando el comando dentro de python utilizando algo así como os.system? ¿O está ejecutando el comando foo y luego ejecuta su secuencia de comandos python? – Zoredache
simplemente usando ipython como shell y ejecutando comandos con! Cmd – piotr