MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[Python]キーイベント検知

Pythonでは、キーイベントを検知することができます。
本記事では、ライブラリを用いたキーイベントの検知方法を紹介します。

やすひら

Pythonのキーイベント検知方法を紹介します

この記事でわかること
  • キーイベントとは
  • pynputライブラリによるキーイベント検知
目次

キーイベントとは

キーイベントとは、キーボードの押下をプログラムで検知する仕組みです。
主に以下のイベントを検知することができます。

イベント検知内容
KeyDownキーが押下された
KeyUpキーが話された
KeyPressキーが押下されて文字入力された

pynputライブラリによるキーイベント検知

pynputライブラリでキーイベント検知することができます。

ライブラリのインストール

pynputライブラリをインストールします。

コマンドライン

pip install pynput

pipでpynputライブラリをインストールします。

キーイベント検知

pynputライブラリでキーイベント検知します。

ソースコード

from pynput import keyboard

# 押下されているキーを記録
pressed_keys = set()

# キーの組み合わせを定義
COMBO = {keyboard.Key.ctrl, keyboard.Key.shift}

def on_press(key):
    pressed_keys.add(key)
    print(f"{key}が押されました")

    if COMBO.issubset(pressed_keys):
        print("Ctrl + Shiftを検知しました")

def on_release(key):
    pressed_keys.discard(key)
    print(f"{key}が離されました")

    if key == keyboard.Key.esc:
        # ESCで終了
        print("ESCを検知しました")
        print("プログラムを終了します")
        return False

# リスナーを実行
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

コマンド実行例

$ python3 -B python-key-event-pyput.py
'a'が押されました
a'a'が離されました
'b'が押されました
b'b'が離されました
'c'が押されました
c'c'が離されました
Key.ctrlが押されました
Key.shiftが押されました
Ctrl + Shiftを検知しました
Key.shiftが離されました
Key.ctrlが離されました
Key.escが押されました
^[Key.escが離されました
ESCを検知しました
プログラムを終了します

pyputライブラリでキーイベントを検知しました。

まとめ

Pythonでキーイベントを検知する方法を紹介しました。

キーイベントの検知は
  • pyputライブラリで検知できる

キーイベントの検知は、標準入力以外でキー入力を検知する方法の一つです。
特定のキー入力で、プログラムを終了させたい場合や、特定の動作をさせたい場合に有効です。

  • URLをコピーしました!
目次