[Tutor] Want to use msvcrt.getch() but can't import msvcrt

Dick Moores rdm at rcblue.com
Sat Jul 17 09:01:42 CEST 2004


A week ago or so I asked how I might enable pausing my timer.py. Alan 
Gauld suggested looking at the mscvrt module (which is available for 
Windows) and mscvrt.getch(). He also referred me to a page of his 
tutorial, <http://www.freenetpages.co.uk/hp/alan.gauld/tutor2/tutevent.htm>

This seems to be just what I'm looking for, but when I import mscvrt I get
"ImportError: No module named mscvrt".

So I can't even run the scripts on his page.

For your instructing convenience here's a bare-bones version of my timer:

=============================
#timer_simple.py
import time
#import mscvrt # gets "ImportError: No module named mscvrt"

secondsToTime = int(raw_input("Seconds: "))
timeStart = time.time()
timeNow = 0
while True:
     time.sleep(.25)
     timeNow = time.time()
     secondsPassed = timeNow - timeStart
     secondsLeft = secondsToTime - secondsPassed
     if secondsPassed >= secondsToTime:
         break

print "TIME'S UP! %d seconds have passed" % secondsToTime
print "Actual time is %f" % (timeNow - timeStart)
==================================

Alan suggested the time.sleep(.25) line to slow the loop down so I can do 
something else with my computer while using the timer. He said to create 
a "guard condition" by making the timeNow = time.time()  line into an if 
statement. If was able to import mscvrt and use mscvrt.getch() I suppose 
I could figure this out by experimenting, but I can't even do that.

I'd also like to build in a way to stop the time in mid-timing, without 
resort to ^C or ^D. I suppose getch() is the thing to use here also.

BTW I'm using Python 2.3.4 on Windows XP.

Do I need to download the mscvrt from somewhere?

Help, please?

Thanks, tutors.

Dick Moores



More information about the Tutor mailing list