Ending an infinite while loop Ending an infinite while loop python python

Ending an infinite while loop


You can try wrapping that code in a try/except block, because keyboard interrupts are just exceptions:

try:    while True:        IDs2=UpdatePoints(value,IDs2)        time.sleep(10)except KeyboardInterrupt:    print('interrupted!')

Then you can exit the loop with CTRL-C.


You could use exceptions. But you only should use exceptions for stuff that isn't supposed to happen. So not for this.

That is why I recommand signals:

import sys, signaldef signal_handler(signal, frame):    print("\nprogram exiting gracefully")    sys.exit(0)signal.signal(signal.SIGINT, signal_handler)

you should put this on the beginning of your program and when you press ctrl+c wherever in your program it will shut down gracefully

Code explanation:

You import sys and signals. Then you make a function that executes on exit. sys.exit(0) stops the programming with exit code 0 (the code that says, everything went good).

When the program get the SIGINT either by ctrl-c or by a kill command in the terminal you program will shutdown gracefully.


I think the easiest solution would be to catch the KeyboardInterrupt when the interrupt key is pressed, and use that to determine when to stop the loop.

except KeyboardInterrupt:    break

The disadvantage of looking for this exception is that it may prevent the user from terminating the program while the loop is still running.