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 備忘録