[Tutor] Capturing ctrl-c
Jason Massey
jason.massey at gmail.com
Mon Sep 24 14:11:48 CEST 2007
Interesting.
As Michael suggested this works, mostly:
from time import sleep
def loop():
x = 0
while 1:
print "x:",x
x += 1
sleep(0.5)
if __name__ == "__main__":
while 1:
try:
loop()
except KeyboardInterrupt:
print "Nope, not going to stop."
Ctrl-C is ignored. But on Win XP, at least, Ctrl-Break still exits the
program.
On 9/22/07, Michael Langford <mlangford.cs03 at gtalumni.org> wrote:
>
> When I do real applications with exception based languages, I almost
> always wrap the main function with a try/except block to allow me to
> gracefully shut down.
>
> In the case of python, this means 1> Use the main method 2> wrap its
> execution in a try catch:
>
> import mymodule
>
> def do_stuff():
> pass
>
> def graceful_cleanup()
> pass
>
> if "__main__" == __name__:
> try:
> do_stuff()
> except:
> graceful_cleanup()
>
> --Michael
>
> --
> Michael Langford
> Phone: 404-386-0495
> Consulting: http://www.TierOneDesign.com/
> Entertaining: http://www.ThisIsYourCruiseDirectorSpeaking.com
>
> On 9/22/07, James <jtp at nc.rr.com> wrote:
> >
> > Hi. :)
> >
> > I'm whipping up a program in Python and am having to deal with a user
> > potentially hitting ctrl-c at any point in the program. I'd like my
> > Python program to wrap up cleanly when it receives this signal.
> >
> > I did some Googling and read that Python throws a KeyboardInterrupt
> > error. What's the best way to run a specific "cleanup" function at
> > *any* time the interrupt is received, regardless of where the program
> > is in execution?
> >
> > Most of the stuff I've read involves try-except blocks. This makes
> > sense to me if I want to protect a specific function or area of the
> > code from being interrupted by ctrl-c, but I'm not sure what kind of
> > structure my program must have to catch the exception at any point
> > during execution.
> >
> > Thoughts/ideas appreciated. :)
> >
> > Thanks!
> > .james
> > _______________________________________________
> > Tutor maillist - Tutor at python.org
> > http://mail.python.org/mailman/listinfo/tutor
> >
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070924/c914802f/attachment.htm
More information about the Tutor
mailing list