¿De todos modos puedo hacer que mi script ejecute una de mis funciones cuando se golpea Ctrl+c
cuando se ejecuta el script?¿Cómo puedo anular la interrupción del teclado? (Python)
Respuesta
Eche un vistazo a signal handlers. CTRL-C corresponde a SIGINT (señal n. ° 2 en sistemas posix).
Ejemplo:
#!/usr/bin/env python
import signal
import sys
def signal_handler(signal, frame):
print 'You pressed Ctrl+C - or killed me with -2'
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
print 'Press Ctrl+C'
signal.pause()
nota: este también debería golpear el manejador de señal cuando 'kill -2 [pid] 'en el OS – wim
@wim, buen punto, gracias, agregué una pista a mi respuesta - ¿hay realmente una manera de distinguir una muerte por el teclado de matar por matar? – miku
He visto que el primero generará una excepción 'KeyboardInterrupt' en python, la última no. Pero no estoy seguro de los detalles de implementación de por qué esto es así. – wim
Uso del KeyboardInterrupt exception y llame a su función en el bloque except
.
Sure.
try:
# Your normal block of code
except KeyboardInterrupt:
# Your code which is executed when CTRL+C is pressed.
finally:
# Your code which is always executed.
- 1. ¿Cómo disparar o simular la interrupción del teclado?
- 2. cygwin + console2 interrupción del teclado ctrl-c no funciona
- 3. ¿Cómo puedo anular una constante en un módulo Python importado?
- 4. ¿Cómo puedo evitar la autocompletación del teclado en MobileSafari/UIWebView?
- 5. jQuery: ¿Cómo puedo escuchar la entrada general del teclado?
- 6. Python: cómo inherite y anular
- 7. Interrupción del software
- 8. Yum chocó con el teclado de error de interrupción
- 9. Python: Señal de teclado/interrupciones incorporadas
- 10. ¿Puedo cambiar la entrada del teclado de un usuario?
- 11. ¿Cómo puedo anular un controlador Magento?
- 12. Cómo detecta libgdx la presencia del teclado
- 13. ¿Cómo puedo capturar los eventos del teclado desde qué teclas?
- 14. Cerrar todos los hilos con una interrupción de teclado
- 15. Teclado personalizado: inputView: cómo cambiar el tamaño del teclado?
- 16. ¿Detecta la ocultación del teclado del iPad frente a la conexión del teclado externo?
- 17. ¿Puedo anular una propiedad en C#? ¿Cómo?
- 18. ¿Cómo anular el operador []?
- 19. ¿Cómo cambiar la fuente de la tecla del teclado Android?
- 20. ¿Cómo puedo anular los indicadores del compilador (gcc) que usa setup.py de manera predeterminada?
- 21. Cómo verificar el teclado del iPhone ¿Desea encender/apagar el sonido del teclado en la configuración?
- 22. Cómo anular la selección del texto de un cuadro combinado
- 23. Escucha teclado USB con Python
- 24. Dimensiones del teclado del iPad
- 25. ¿Anular el registro de Python Twisted?
- 26. ¿Cómo puedo anular los accesos directos del acelerador de menús de Visual Studio?
- 27. ¿Cómo anular correctamente la igualdad?
- 28. Anular la llamada a DLL no administrado
- 29. Anular espacio de nombre en Python
- 30. ¿Puedo anular con tipos derivados?
Consulte http://stackoverflow.com/questions/4205317/capture-keyboardinterrupt-in-python-without-try-except para obtener varias opciones. – DSM