Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python】キーボード、キー入力判定方法


PythonにてRPA化などを行っていると、ユーザー側のキー操作によって処理を変更、終了したいような場合が出てきます。

 

そのような場合のキー入力判定手順を備忘録として残しておきます。

 

キーボード入力判定はいくつか方法があると思いますが、今回はPython「keyboard」モジュールを使用する方法になります。

 

目次

 

 

1.「keyboard」モジュールのインストール

 

まずはじめに、コマンドプロンプト、ターミナルなどで「keyboard」モジュールをインストールします。

 

pip install keyboard

 

自分はPython3しか使用してないですが、Python2とPython3が同時インストールされているような場合は、

Python2:pip、Python3:pip3

などとなったりするんですかね。

 

 

実際に使用する場合には、「keyboard」モジュールをインポートしてから使用します。

 

「keyboard」モジュールにはキープレス判定用にいくつかメソッドルがあります。

ここでは、is_pressed()、read_key()、on_press_key()の3つを使用します。

 

2.is_pressed()の使用例

 

まずはじめに、is_pressed()の場合の例です。

1行目で「keyboard」モジュールをインポートしています。

 

import keyboard

while True:
    if keyboard.is_pressed("a"):
        print("a")
        break

 

上の例のように、引数に書かれた文字とユーザーがキー入力した文字が同じであればTrue、違っていればFalseを返します。

 

また、アルファベットや数値でけではなく、上記の"a"の文字を、

"enter"、"escape"、"space"

などと変更すればこれらのキー入力判定もできるようになります。

 

 

3.read_key()の使用例

 

次に、read_key()の場合の例です。

 

import keyboard

while True:
    if keyboard.read_key() == "b":
        print("b")
        break

 

上の例でのread_key()を含めた内容としては、ユーザーのキー入力したキーを読み取り、それが「==」の後に書かれた文字と一致しているかどうかを判定しています。

この場合、一致していれば、print文で「b」を印字します。

 

4.on_press_key()の使用例

 

最後に、on_press_key()の場合の例です。

 

import keyboard

keyboard.on_press_key("c", lambda _:print("c"))

 

on_press_key()では、2つの引数がありますが、1つ目の引数がキー判定する文字、2つ目が実行関数となります。

ユーザーがキー入力したキーが1つ目の文字と一致すれば、2つ目の関数を実行します。

この例では、ユーザーが「c」キーをクリックした場合のみ、print文で「c」を印字します。

 

以上、3つが今回の使用例となります。

状況に応じて使い分けてみてください。

 

 

関連記事:

【Python】keyboardライブラリでのキー入力検出に使用可能なキーの種類 - Django Girls and Boys 備忘録

 

【PythonからWeb操作】seleniumのインストール手順 - Django Girls and Boys 備忘録

 

【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録

 

【Python】おすすめ学習本ランキング8選 - Django Girls and Boys 備忘録

 

【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録

 

【Python Selenium】ブラウザ用ドライバーのダウンロードとインストール - Django Girls and Boys 備忘録

 

【PythonからWeb操作】selenium、各ブラウザ用ドライバーの最新バージョン確認、ダウンロード場所 - Django Girls and Boys 備忘録

 

【Python Selenium】新規ウインドウ追加時のウインドウ切替方法 - Django Girls and Boys 備忘録

 

【Python Selenium】ウインドウ表示時などでのWaitの方法、待機方法 - Django Girls and Boys 備忘録

 

【Python Selenium】新規ウインドウ(新規タブ)追加時のウインドウ切替方法(追加ハンドルをハンドル差異比較にて取得) - Django Girls and Boys 備忘録

 

【python】実行時に表示されるコンソールウインドウを非表示にする方法 - Django Girls and Boys 備忘録