スモールステップで始める自動化入門 ~PyAutoGUIをつかってみた~

メソ
2023-10-10
2023-10-10

こんにちは。メソです。
メソという名詞には「中間」という意味があるみたいです。以上、豆知識でした。

近頃プログラムに任せて自動でよしなにしてくれないかなと思っていたところ、PyAutoGUIというライブラリを教えてもらいましたので、今回はこのPyAutoGUIを使ってみたいと思います。
PyAutoGUIは簡潔に言うと、プログラムを記述することで好きにマウスやキーボード入力を操作することができるライブラリです。

本記事は自動でスクリーンショットを撮影し任意の名前で保存するという、とってもやさしい入門編です。

環境

■Windows 11
■Python 3.11.5
※Pythonのインストールにつきましては省略いたします(._. )

PyAutoGUIのインストール

まずはPyAutoGUIをインストールしましょう。

pip install pyautogui

自動でスクショを撮ってみよう

さっそくコードを記述し、表示している画面のスクショを撮ってみましょう。

import pyautogui
screenshot = pyautogui.screenshot()
screenshot.save('ファイル名.png')

①pyautoguiをインポートします。
②スクリーンショットを撮ります。
③ファイル名を好きに指定し、②で撮影できたデータを保存します。

撮影できたスクリーンショットは、基本的にプログラムと同じファイルに保存されます。
任意のフォルダに保存したい場合、ファイル名の直前にパスを記述することで、指定したフォルダに保存されます。

【例】
フォルダ名:mochimochi(カレントディレクトリ配下に事前に作成)
ファイル名:ponpon.png の場合

screenshot.save('./mochimochi/ponpon.png')

ファイル名を'日付+時刻'にしてみよう

日付と時刻を取得する

まず、日付と時刻を取得するためにdatetimeライブラリを使ってみましょう。

import datetime
now_time = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
print(now_time)

①datetimeをインポートします。
②「datetime.datetime.now()」で現在の日付、時刻を取得します。「.strftime(~~)」の部分では、取得した日付と時刻のフォーマットを指定しています。
③print()で②の取得内容を出力します。今回は「%Y%m%d_%H%M%S」と表記するよう指定していますので、「日付_時刻」のように出力されます。

保存ファイル名を'日付+時刻'にする

スクリーンショットを撮るプログラムと組み合わせて、ファイル名を日付+時刻にしてみましょう。

import pyautogui
import datetime

now_time = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')

screenshot = pyautogui.screenshot()
file = now_time + '.png'
#ファイルパスを指定した場合
#file = './mochimochi/' + now_time + '.png'
screenshot.save(file)

 

今回はPyAutoGUIを使ってみました。
実際に使ってみて、プログラムでGUIを操作することは実感があってわかりやすいと感じました。リファレンスを見てみると、画面をスクロールさせたり、文字列をメッセージボックスに入力することもできるようです。
他にも色々な機能やライブラリを使って、プログラムにお任せしてみたいと思います!