Pythonで自動化する際に、ライブラリとして良く使用されるのが「PyAutoGUI」になります。
PyAutoGUIは普段何度も繰り返すようなマウス操作で移動やコピペなどの自動化に向いているライブラリです。
ここではWindows環境での「PyAutoGUI」の基本的な操作方法について紹介しています。
この記事の対象
「PyAutoGUI」とは?
「PyAutoGUI」はマウスを中心にした操作を自動化するライブラリになります。
環境構築として、以下を実行してライブラリをインストールしておく必要があります。
py -m pip install pyautogui
「PyAutoGUI」の使用例
画面サイズ取得
import pyautogui
print(pyautogui.size())
操作環境のディスプレイのサイズを取得する方法は「pyautogui.size()」になります。
中央値を知りたい場合はsizeを取得して÷2にすることで求められます。
w,h= pyautogui.size()
center_x = w/2
center_y = h/2
マウスの移動
pyautogui.moveTo(x,y)
マウスを移動させるには「pyautogui.moveTo()」になります。引数にはx,yを指定する必要があります。
また、durationを指定することで何秒で移動させるかも指定することが可能です。
pyautogui.moveTo(0,0,duration = 1)
例えば上記のように記述すると、現在の位置から左上に移動するのに1秒で移動させるという事になります。
マウスの現在値
pyautogui.position()
マウスの現在値は「pyautogui.position()」で取得できます。
予めどこで操作したいか決まっている場合などは、positionを取得してその位置であったらクリックするなどの条件として使用する場合に便利です。
クリック
pyautogui.click(clicks=x, interval=x)
マウスのクリックは「pyautogui.click()」になります。引数の「clicks」はクリックの回数、「interval」はクリックする間隔になります。
右クリックをしたい場合は以下のように引数で指定します。
pyautogui.click(button='right')
ダブルクリックをしたい場合は以下の関数が用意されています。
pyautogui.doubleClick()
また、トリプルクリックも専用の関数があります。
pyautogui.tripleClick()
書込み操作
pyautogui.write("TEST", interval=0.5)
書込み操作は「pyautogui.write()」になります。引数には書込みたい文字列を指定します。interval(書き込む間隔)を指定することも可能です。
Enterを押す
pyautogui.press('enter')
Enterを押したい場合は「pyautogui.press()」になります。
例えばF1を押したい場合もpress()関数を用います。
pyautogui.press('f1')
ショートカットキーの入力
pyautogui.hotkey('ctrl', 'c')
同時押しの操作をしたい場合は「pyautogui.hotkey()」になります。上記はコピーになります。
例えば、全選択をしたい場合は「ctrl」+「a」なので、以下になります。
pyautogui.hotkey('ctrl', 'a')
自動化のヒントになる書籍
シゴトがはかどるPython自動処理の教科書
自動化全般について、Pythonで実現するための方法が分かりやすく紹介されています。一読するとよりPythonで自動化することに対して明確になると思います。
Pythonによる自動化仕事術 あなたの仕事が一瞬で片付く
動画(Youtube)でも勉強できますが、一冊あると体系的に理解できておすすめです。初心者向けに丁寧に解説されているので個人的には凄くおすすめです。
PythonでExcel、メール、Webを自動化する本
Excel、メール、Web操作を中心に自動化のためのサンプルコードが多く紹介されています。こちらも初心者が最初の一冊として参考にするには分かりやすく書かれており、おすすめです。