1. ホーム
  2. python

Pythonでキーボードをポーリングする(キー入力を検出する)

2023-10-07 21:05:55

質問

どのように私はコンソールPythonアプリケーションからキーボードをポーリングすることができますか?具体的には、私は、多くの他の I/O 活動 (ソケット選択、シリアル ポート アクセスなど) の中で、これに似たことを行いたいと思います。

while True:
    # doing amazing pythonic embedded stuff
    # ...

    # periodically do a non-blocking check to see if
    # we are being told to do something else
    x = keyboard.read(1000, timeout = 0)

    if len(x):
        # ok, some key got pressed
        # do something

Windowsでこれを行うための正しいpythonicな方法は何ですか?また、必須ではありませんが、Linuxへの移植性も悪くはないでしょう。

どのように解決するのですか?

標準的な方法としては を選択することです。 モジュールを使うことです。

ただし、これはWindowsでは動きません。 そのためには msvcrt モジュールのキーボードポーリングを使ってください。

多くの場合、これは複数のスレッドで行われます -- 監視されるデバイスごとに 1 つと、デバイスによって中断される必要があるかもしれないバックグラウンドプロセスです。