Quantcast
Channel: Notes on Science
Viewing all articles
Browse latest Browse all 14

Python: input from Keyboard without Enter

$
0
0

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


Viewing all articles
Browse latest Browse all 14

Trending Articles