Comment détecter Échapper à la pression de touche en Python?

Je suis en cours d'exécution d'un processus dans une fenêtre de commande (Windows 7, Python 3.1) où je voudrais que l'utilisateur d'interrompre le processus en appuyant sur la touche echap. Toutefois, en appuyant sur la touche echap ne semble pas faire n'importe quoi :-(, la boucle ne brise jamais. J'ai également essayé de lancer le script à partir de l'intérieur de mon IDE (Aile), mais encore une fois, la boucle ne peut pas être interrompu.

Ce qui suit est une version allégée de ma preuve-de-concept de test...

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!

Si quelqu'un pourrait me dire où je peut mal se passer, je vous en serais très reconnaissant.

OriginalL'auteur Alan Harris-Reid | 2011-02-28