この記事では、Pythonを使って自動的にキーボード入力を行う方法について分かりやすく説明します。
Pythonで自動的にキーボード入力を行うには?
Pythonでは、自動的にキーボード入力を行うめの便利なライブラリがあります。今回は「pyautogui」を使って、キーボード入力を自動化します。
pyautoguiとは?
pyautoguiは、マウス操作やキーボード入力を自動で行うことができるPythonのライブラリです。
GUI(グラフィカルユーザーインターフェース)上の操作をPythonで自動化できるのが特徴です。
自動入力、クリック、スクリーンショットなど、たくさんの便利な機能がありますが、今回は「キーボード入力」に絞って説明します。
参考:【Python】マウスポインタの位置と画面サイズを取得する方法
pyautoguiのインストール方法
以下のコマンドを実行し、ライブラリをインストールします。
pip install pyautogui
文字を自動で入力する
pyautogui.write() を使って文字列を入力することが可能です。
import pyautogui
import time
time.sleep(3) # 3秒待ってから入力開始(準備時間)
pyautogui.write('Hello, this is automated typing!', interval=0.1)
4行目:time.sleep(3)は3秒間待機します。実行後に入力先アプリ(メモ帳など)に切り替える時間を確保できます。
6行目:pyautogui.write():文字列「Hello, this is automated typing!」を自動で入力します。interval=0.1は、文字ごとの間隔(秒)です。速すぎると読み取れないアプリもあるので、少し間を空けるのがおすすめです。
■実行結果の例
EnterやTabなどの特殊キーを入力するには?
pyautogui.write()では、文字入力しかできません。エンターキーやタブキーなどを入力したいときは、pyautogui.press()を使います。
import pyautogui
import time
time.sleep(5)
pyautogui.write('Please enter your name.')
pyautogui.press('enter') # Enterキーを押す
pyautogui.write('Taro Tanaka')
■実行結果の例
■よく使うキー一覧(一部)
キー | pyautoguiでの指定名 |
Enter | “enter” |
Tab | “tab” |
Esc | “esc” |
Backspace | “backspace” |
Shift | “shift” |
Ctrl | “ctrl” |
Alt | “alt” |
複数のキーを同時に押す:ショートカットを送信する
ショートカットキー(例:Ctrl+C、Ctrl+V)などを使いたい場合は、pyautogui.hotkey()が便利です。
import pyautogui
import time
time.sleep(3)
pyautogui.hotkey('ctrl', 'c') # Ctrl+C(コピー)
time.sleep(1)
pyautogui.hotkey('ctrl', 'v') # Ctrl+V(貼り付け)
複数のキーをリストで渡すだけで同時押しができます。[‘ctrl’, ‘s’]など保存操作にも使えます。
メモ帳に自動入力してみよう
実際に使ってみるとわかりやすいので、Windowsの「メモ帳」を開いて、そこに自動入力してみましょう。
import pyautogui
import time
print("5秒後に自動入力を開始します。メモ帳をアクティブにしておいてください。")
time.sleep(5)
pyautogui.write("おはようございます。\n今日はPythonで自動入力を試しています。\n", interval=0.1)
pyautogui.press("enter")
pyautogui.write("PyAutoGUIはとても便利です!", interval=0.1)
ポイント:
- 事前にメモ帳を開いておき、スクリプト実行後にアクティブにすることで、そこに自動で入力されます。
- \nは改行として使えます。
注意点と安全対策
pyautoguiには便利な機能がたくさんありますが、無限ループや操作ミスでPCが操作不能になることもあります。以下のような安全装置を必ず設定しましょう。
緊急停止のショートカット
マウスを画面左上に移動するとスクリプトが強制終了する「fail-safe機能」があります。
pyautogui.FAILSAFE = True
これはデフォルトで有効ですが、明示的に書いておくと安心です。
まとめ
今回は、Pythonを使って自動的にキーボード入力を行う方法について分かりやすく説明しました。