Sleep timer but still responsive?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Jan 29 13:19:19 EST 2010


En Fri, 29 Jan 2010 14:39:31 -0300, MRAB <python at mrabarnett.plus.com>  
escribió:
> JohnnyFive wrote:

>>  My app is purely console based. I just don't want the console to lock
>> up (on Windows using time.sleep(x) causes the console to become
>> unresponsive until the timer is done), and I want people to be able to
>> CTRL+C to stop the script if need be (which can't be done if it's
>> unresponsive!).
>>  Thanks.
>
> Which version of Python are you using? time.sleep(x) can be interrupted
> in Python 2.6.

I'm able to be more precise: time.sleep() can be interrupted in any Python  
version since 2.3.

To the OP: beware of any unqualified 'except' clauses; a block like this:

   try:
     ...
   except:
     do_something_or_pass

may "swallow" the KeyboardInterrupt exception (generated by a Ctrl-C  
press).
 From Python 2.5 and up, the most generic exception clause should read  
`except Exception: ...`
In previous versions, you had to explicitely re-raise KeyboardInterrupt  
and SystemExit in any catch-all block:

   try:
     ...
   except (KeyboardInterrupt, SystemExit):
     raise
   except:
     ...

-- 
Gabriel Genellina




More information about the Python-list mailing list