3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonでキーボードの割り込みを受け取る

Posted at

Pythonでキーボードの割り込みを受け取る

はじめに

Pythonでキーボードの割り込みを受け取る方法をご紹介します。Pythonでキーボードを操作する方法について解説し、実際に実装例をご紹介します。

msvcrtとは

msvcrtは、Windows環境で使用するマイクロソフト公式のCランタイムライブラリです。msvcrtを使用することで、PythonからC言語と同等の機能を使用することができます。

msvcrt.kbhit()とは

msvcrt.kbhit()は、msvcrtモジュールの1つの関数です。この関数を使用することで、キーボードの入力があるかどうかを調べることができます。

実装例1

msvcrt.kbhit()を使用して永久ループ中にキー入力を受け取る処理を書いてみましょう。

import msvcrt

while True:
    if msvcrt.kbhit() and msvcrt.getch() == b'q':
        break
    else:
        print("This loop will continue forever")

このようにmsvcrt.kbhit()を使用することで、キーボードの入力を受け取ることができます。

input()との違い

input()を使用すると、ユーザーが文字を入力するまで待ち状態になりますが、msvcrt.kbhit()を使用すると、キーを押した瞬間に処理を行うことができます。

keyboard.is_pressed()との違い

keyboard.is_pressed()は、keyboardモジュールの1つの関数です。この関数を使用すると、特定のキーが押されているかどうかを調べることができます。keyboard.is_pressed()もmsvcrt.kbhit()も、キー入力を受け取るのに使用できますが、keyboard.is_pressed()は特定のキーを受け取るためのみに使用することができます。

応用実装例1

keyboard.is_pressed()を使用して永久ループ中にキー入力を受け取る処理を書いてみましょう。

import keyboard

while True:
    if keyboard.is_pressed('q'):
        break
    else:
        print("This loop will continue forever")

このようにkeyboard.is_pressed()を使用することで、特定のキーを受け取ることができます。

応用実装例2

msvcrt.kbhit()とinput()を使用して永久ループ中にキー入力を受け取る処理を書いてみましょう。

import msvcrt

while True:
    if msvcrt.kbhit():
        key = input("Press q to quit or any other key to continue: ")
        if key == "q":
            break
    else:
        print("This loop will continue forever")

このようにmsvcrt.kbhit()とinput()を使用することで、特定のキーを受け取ることができます。

まとめ

Pythonでキーボードの割り込みを受け取る方法をご紹介しました。msvcrt.kbhit()、keyboard.is_pressed()、input()を使用することで、キーボードの入力を受け取ることができます。また、これらを組み合わせることで、より複雑な処理を実装することも可能です。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?