Как определить нажатие клавиши ESCape в Python?

Я запускаю процесс в командном окне (Windows 7, Python 3.1), где я хочу, чтобы пользователь прервал процесс, нажав клавишу ESCape. Однако нажатие клавиши ESCape, похоже, ничего не делает :-(, цикл никогда не прерывается. Я также пробовал запустить сценарий из моей среды IDE (Wing), но опять же, цикл не может быть прерван.

Ниже приводится урезанная версия моего теста на подтверждение концепции ...

import msvcrt
import time

aborted = False

for time_remaining in range(10,0,-1):
    # First of all, check if ESCape was pressed
    if msvcrt.kbhit() and msvcrt.getch()==chr(27):
        aborted = True
        break

    print(str(time_remaining))       # so I can see loop is working
    time.sleep(1)                    # delay for 1 second
#endfor timing loop

if aborted:
    print("Program was aborted")
else:
    print("Program was not aborted")

time.sleep(5)  # to see result in command window before it disappears!

Если бы кто-нибудь мог сказать мне, где я могу ошибиться, я был бы очень благодарен.

8
задан Matthew Murdoch 4 May 2013 в 20:20
поделиться