Pythonでリアルタイムにキーボード入力を処理する方法
Pythonでキーボードからの入力を受け取る場合は、
input()やraw_input()を使うのが一般的だが、
これらはEnterキーを打つまで入力待ちの状態になってしまう。
Enterキーを打たずに、キーを1つ打った直後に処理を行いたい場合、
意外と直接的な命令がなく面倒な前処理が必要だったのだが、
Pythonではreadcharというライブラリを使えば簡単に処理することができる。
まず
# pip install readchar
して
プログラム内で
import readchar
c = readchar.readchar()
key = readchar.readkey()
のようにreadchar()やreadkey()を呼び出せば良い。
サンプルプログラム
キーボードからの文字入力をそのまま標準出力する。
qで終了。
import readchar import sys while 1: kb = readchar.readchar() sys.stdout.write(kb) if kb == 'q': print("") break