Esta sección ha sido analizado por expertos para que tengas la garantía de la veracidad de nuestro post.
Solución:
Puede intentar envolver ese código en un bloque de prueba/excepto, porque las interrupciones del teclado son solo excepciones:
try:
while True:
IDs2=UpdatePoints(value,IDs2)
time.sleep(10)
except KeyboardInterrupt:
print('interrupted!')
Luego puede salir del bucle con CTRL-C.
Podrías usar excepciones. Pero solo debe usar excepciones para cosas que no deberían suceder. Así que no por esto.
Es por eso que recomiendo las señales:
import sys, signal
def signal_handler(signal, frame):
print("nprogram exiting gracefully")
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
debe poner esto al principio de su programa y cuando presione ctrl+c en cualquier parte de su programa, se cerrará con gracia
Explicación del código:
tu importas sys
y signals
. Luego haces una función que se ejecuta al salir. sys.exit(0)
detiene la programación con el código de salida 0 (el código que dice, todo salió bien).
Cuando el programa obtenga el SIGINT, ya sea mediante ctrl-c o mediante un comando de eliminación en la terminal, el programa se cerrará correctamente.
Creo que la solución más fácil sería capturar KeyboardInterrupt cuando la interrupción key está presionado, y utilícelo para determinar cuándo detener el bucle.
except KeyboardInterrupt:
break
La desventaja de buscar esta excepción es que puede evitar que el usuario finalice el programa mientras el ciclo aún se está ejecutando.
Sección de Reseñas y Valoraciones
Acuérdate de que tienes la capacidad de valorar este post si te ayudó.