#26 PyAutoGUIを使ってマクロを作成する
YATTA!駆動開発の26回。PyAutoGUIを使って作業を自動化する。
基本情報
前回:#25 IndexedDBにVRMを保存する
次回:#27
asweigart/pyautogui
PyAutoGUIはマウスやキーボード入力を操作可能なPythonのモジュールです。
このモジュールを使うことで他のアプリケーションの操作を自動化することが出来ます。
PyAutoGUI
使い方はシンプルなので公式のドキュメントを読むのが早いとは思います。
PyAutoGUI documentation
導入
code:sh
pip install pyautogui
マウスカーソル座標の取得
code:py
pyautogui.position()
マウスカーソルの移動
code:py
pyautogui.moveTo(x, y, duration=seconds) // スクリーン座標 x, y , 所要時間(秒)
マウスクリック
code:py
pyautogui.click() // 左クリック
pyautogui.click(x=100, y=200) // 指定座標をクリック
文字列入力
code:py
pyautogui.write('Hello world!')
画像を指定して中央座標を取得
code:py
pyautogui.locateCenterOnScreen('hoge.png')
ボタンの画像などをあらかじめ用意しておくと位置を取得できるそうです。
今回は使いませんでした。
マクロを中断させる
ループ処理をさせるとその間、マウス・キーボードが使えなくなることがあります。
その時に終了させる場合はマウスカーソルを画面左上(0,0)に持っていくと中断させることができます。
このフェイルセーフ機能はデフォルトで有効になっており、以下のように無効にすることもできます。
非推奨
code:py
pyautogui.FAILSAFE = False
fail-safes
csvファイルを読み込んで書き込ませる
csvファイルの内容を書き込ませる簡単なマクロです。
code:py
import csv
csvFile = open('hoge.csv',encoding='utf_8',newline='')
reader = csv.reader(csvFile,delimiter='',quotechar='"')
for row in reader:
pyautogui.typewrite(row0)
//...
次回は#27
参考
asweigart/pyautogui
Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation
csv --- CSV ファイルの読み書き — Python 3.9.4 ドキュメント