ループを実行しているプログラムがあります。たとえば、キーボードの「ESC」キーを押すたびに、「ESCキーを押しました」と出力する関数が呼び出され、いくつかのコマンドも実行される可能性があります。
私はこれを試しました:
from msvcrt import getch
while True:
key = ord(getch())
if key == 27: #ESC
print("You pressed ESC")
elif key == 13: #Enter
print("You pressed key ENTER")
functionThatTerminatesTheLoop()
すべての試行の後、msvcrt は python 3.3 またはその他の理由で動作しないようです。基本的に、プログラムの実行中に任意の時点でキーが押されたときにプログラムを反応させるにはどうすればよいですか?
編集:また、私はこれを見つけました:
import sys
while True:
char = sys.stdin.read(1)
print ("You pressed: "+char)
char = sys.stdin.read(1)
ただし、入力を再開するには、コマンド コンソールに入力する必要がありますが、ループを tkinter で実行しているため、キープレスが検出された直後に何かを実行する方法が必要です。