Using msvcrt (in Windows), how to catch Enter key?
Dick Moores
rdm at rcblue.com
Mon Oct 29 20:47:33 EDT 2007
Reposting, deleting the [Possible SPAM] from the Subject: header.
At 03:23 PM 10/29/2007, Gabriel Genellina wrote:
>En Mon, 29 Oct 2007 14:39:49 -0300, Dick Moores <rdm at rcblue.com> escribió:
>
> > But here's a case where it seems I do need the
> >
> > if msvcrt.kbhit() line
>
>At least add a small sleep() call inside the loop, to be nice to other
>running processes:
>
> > =========================
> > #!/usr/bin/env python
> > #coding=utf-8
> > import time
> > import msvcrt
> > timeNow = time.time()
> > oldTimeNow = timeNow
> > while True:
> > if msvcrt.kbhit():
> > key = msvcrt.getch()
> > if key == 'h':
> > print 'Hello'
> > if key == 'b':
> > print 'Bye'
> > if key == '\r': # Enter key
> > break
> else:
> time.sleep(0.1)
> > timeNow = time.time()
> > if timeNow - oldTimeNow > 5:
> > print "5 seconds passed"
> > oldTimeNow = timeNow
> > =========================
Yes, that makes a major difference in the CPU
usage percentage on my computer. In fact I can't
even tell that there is anything going on other
than the usual behind-the-scenes XP stuff. CPU
usage stays right around 0% or 6%, with an
occasional 6% and a very occasional 15%.
Interestingly, sleep(0.001) makes as big a
difference as your sleep(0.1), but sleep(0.0001) bumps it up to a steady 100%!
Thanks,
Dick
More information about the Python-list
mailing list