★悩み★
・PyAutoGUIでif文を使った条件分岐ってできる?
・PyAutoGUIで画像が「ある」や「ない」という条件分岐ってできる?
・ifとlocateCenterOnScreenを使った条件分岐をPyAutoGUIで作りたい。
こういった「悩み」に答えます。
★本記事の内容★
① PyAutoGUIとは
② PyAutoGUIでifを使った処理分岐
➂ if文とlocateCenterOnScreenを使った画像による条件分岐
これからご紹介する「PyAutoGUIで画像による条件分岐(if文)の実現方法」を実践したことで、5分以内で「PyAutoGUIで画像を使った条件分岐」を作れました(下の動画参照)。
記事の前半では「PyAutoGUIとは?」や「PyAutoGUIのインストール方法」を解説します。
記事の後半では「PyAutoGUIでif文を使った条件分岐」から「PyAutoGUIで画像による条件分岐を実現するプログラムの作成」までを紹介します。
この記事を読み終えることで、「PyAutoGUIの条件分岐」を使える状態になります。
PyAutoGUIとは?
「PyAutoGUIとは?」/「PyAutoGUIの特徴」/「PyAutoGUIのユースケース(利用場面)」に関しては、以下の記事をご覧ください。
>> 【要点】PyAutoGUIとは?初心者向けに特徴から使い方までを図解
また、PyAutoGUIのインストール方法に関しては、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順
>> 【最短5分】UbuntuにPyAutoGUIをインストールする手順
>> 【最短5分】MacにPyAutoGUIをインストールする手順
ウェブブラウザなどの画面操作を自動化をしたい場合、PyAutoGUIを使って無料で実現できます。
以降で、PyAutoGUIで多用する「if文を使った条件分岐」の「構文」から「具体例」までをご紹介しますね。
PyAutoGUIでifを使った処理分岐
「PyAutoGUIでifを使った処理分岐」に関してご紹介します。
★ご紹介事項★
・if文の構文解説
・if文を使った条件分岐プログラムの作成と実行
PyAutoGUIでif文を使うことで、「ある条件を満たす場合に特定の処理を実行する」を実現できます。
上記項目で紹介するプログラムは、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年8月29日
動作確認済み環境:Windows Pro 11
以降で、上記の各項目に関してご説明します。
if文の構文解説
「if文の構文解説」に関して説明します。
PyAutoGUIで処理分岐を実現したい場合、「if」「elif」「else」を使います。
PyAutoGUIで処理分岐を作りたい場合、以下の「if」を使います。
★ifのリファレンス★
処理:指定した条件を満たす場合、以降の処理を実行させる
使い方:if 条件
PyAutoGUIの「if」を使った処理分岐の書き方としては、以下の3パターンがあります。
★ifのパターン①★
・書き方
if 条件:
条件を満たす(True)場合に実行される処理
・例
if num < 0:
print(“numは0未満です。”)
・実行結果
numが0以上の場合、何も表示されない。
numが0未満の場合、「numは0未満です。」が表示される。
★ifのパターン➁★
・書き方
if 条件:
条件を満たす(True)場合に実行される処理
else:
条件を満たさない(False)場合に実行される処理
・例
if num < 0:
print(“numは0未満です。”)
else:
print(“numは0以上です。”)
・実行結果
numが0以上の場合、「numは0以上です。」が表示される。
numが0未満の場合、「numは0未満です。」が表示される。
★ifのパターン➂★
・書き方
if 条件:
条件を満たす(True)場合に実行される処理
elif 条件:
「if 条件」を満たさない(False)かつ「elif 条件」を満たす(True)場合に
実行される処理
else:
「if条件」と「elif条件」を満たさない(Flase)場合に実行される処理
・例
if num < 0:
print(“numは0未満です。”)
elif num == 0:
print(“numは0です。”)
else:
print “numは0より大きいです。”
・実行結果
numが0未満の場合、「numは0未満です。」が表示される。
numが0である場合、「numは0です。」が表示される。
numが0より大きい場合、「numは0より大きいです。」が表示される。
以上が、「if文の構文解説」となります。
if文を使った条件分岐プログラムの作成と実行
「if文を使った条件分岐プログラムの作成と実行」に関して解説します。
if/elif/elseを用いてPyAutoGUIで処理分岐を実現するプログラムを作成してみましょう。
以下のプログラムを作成し、「pyautogui-if.py」というファイル名で保存してください。
import pyautogui as pag
## 変数
exist_icon_path = "chrome_icon.jpg"
not_exist_icon_path = "not_exist_icon.jpg"
### Main
value = 0
if value == 0:
print('valueは0です。')
elif value == 1:
print('valueは1です。')
else:
print('valueは0と1以外です。')
value = 1
if value == 0:
print('valueは0です。')
elif value == 1:
print('valueは1です。')
else:
print('valueは0と1以外です。')
value = 2
if value == 0:
print('valueは0です。')
elif value == 1:
print('valueは1です。')
else:
print('valueは0と1以外です。')
続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。
PS C:\Users\user\Desktop\work\tmp\pyautogui> python .\pyautogui-if.py
valueは0です。
value1です。
valueは0と1以外です。
PS C:\Users\user\Desktop\work\tmp\pyautogui>
コマンド実行後、上記のように出力された場合、「正常に作成したプログラムを実行できた」と判断できます。
以上が、「if文を使った条件分岐プログラムの作成と実行」となります。
上記のように「if」「elif」「else」を使うことで、PyAutoGUIで条件分岐を伴うプログラムを作成できます。
以降では、「画像が画面上にあった場合に特定処理を実行する」方法を説明します。
if文とlocateCenterOnScreenを使った画像による条件分岐
「if文とlocateCenterOnScreenを使った画像による条件分岐」に関してご紹介します。
★ご紹介事項★
・画像で条件分岐する際の構文解説
・画像で条件分岐するプログラムの作成と実行
PyAutoGUIでif文とlocateOnScreenを使うことにより、「指定画像が画面上に存在する場合に特定の処理を実行する」を実現できます。
上記項目で紹介するプログラムは、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年8月29日
動作確認済み環境:Windows Pro 11
以降で、上記の各項目に関してご説明します。
画像で条件分岐する際の構文解説
「画像で条件分岐する際の構文解説」に関して解説します。
PyAutoGUIで画像による条件分岐を実現したい場合、「if」と「locateOnScreen(スクリーンショット機能)」を使います。
PyAutoGUIで「指定画像が画面上に存在する場合に特定の処理を実行する」を実現したい場合、先ほどご紹介した「if」と「locateOnScreen」を使います。
PyAutoGUIの機能の1つであるlocateOnScreen(スクリーンショット機能)を詳しく知りたい方は、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIのlocateOnScreenで画像クリック
PyAutoGUIの「if」と「locateOnScreen」を使った条件分岐の書き方としては、以下の3パターンがあります。
★パターン①★
・書き方
if locateOnScreen(画像ファイルのPATH):
指定画像が画面上に存在する場合に実行される処理
・例
if locateOnScreen(‘sample.jpg’):
print(“numは0未満です。”)
・実行結果
sample.jpgが存在しない場合、何も表示されない。
sample.jpgが存在する場合、「numは0未満です。」が表示される。
★パターン➁★
・書き方
if locateOnScreen(画像ファイルのPATH):
指定画像が画面上に存在する場合に実行される処理
else:
指定画像が画面上に存在しない場合に実行される処理
・例
if locateOnScreen(‘sample.jpg’):
print(“numは0未満です。”)
else:
print(“numは0以上です。”)
・実行結果
sample.jpgが存在する場合、「numは0以上です。」が表示される。
sample.jpgが存在しない場合、「numは0未満です。」が表示される。
★パターン➂★
・書き方
if locateOnScreen(画像1ファイルのPATH):
画像1が画面上に存在する場合に実行される処理
elif locateOnScreen(画像2ファイルのPATH):
画像2が画面上に未存在、かつ、画像2が存在する場合に実行される処理
else:
画像1と画像2が画面上に存在しない場合に実行される処理
・例
if locateOnScreen(‘sample1.jpg’):
print(“numは0未満です。”)
elif locateOnScreen(‘sample2.jpg’):
print(“numは0です。”)
else:
print(“numは0より大きいです。”)
・実行結果
sample1.jpgが存在する場合、「numは0未満です。」が表示される。
sample2.jpgが存在する場合、「numは0です。」が表示される。
sample1.jpgとsample2.jpgが存在しない場合、「numは0より大きいです。」が表示される。
以上が、「画像で条件分岐する際の構文解説」となります。
画像で条件分岐するプログラムの作成と実行
「画像で条件分岐するプログラムの作成と実行」に関して解説します。
if/elseとlocateOnScreen(スクリーンショット機能)を用いて画像で条件分岐を実現するプログラムを作成してみましょう。
以下のプログラムを作成し、「pyautogui-if-locateOnScreen.py」というファイル名で保存してください。
import pyautogui as pag
## 変数
exist_icon_path = "chrome_icon.jpg" # 画面上に存在するアイコン画像
not_exist_icon_path = "not_exist_icon.jpg" # 画面上に存在しないアイコン画像
### Main
## 指定画像が画面上に存在する場合
if pag.locateOnScreen(exist_icon_path, confidence=0.7):
print('指定した画像は画面上に存在します。')
else:
print('指定した画像は画面上に存在しません。')
## 指定画像が画面上に存在しない場合
if pag.locateOnScreen(not_exist_icon_path, confidence=0.7):
print('指定した画像は画面上に存在します。')
else:
print('指定した画像は画面上に存在しません。')
続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。
PS C:\Users\user\Desktop\work\tmp\pyautogui> python .\pyautogui-if-locateOnScreen.py
指定した画像は画面上に存在します。
指定した画像は画面上に存在しません。
PS C:\Users\user\Desktop\work\tmp\pyautogui>
コマンド実行後、下のデモ動画のように、PyAutoGUIで「if」と「locateOnScreen(スクリーンショット機能)」を用いた画像による条件分岐を実現できます。
以上が、「画像で条件分岐するプログラムの作成と実行」となります。
PyAutoGUIで「if」と「locateOnScreen(スクリーンショット機能)」を使うことで「ある画像が存在した場合に特定処理を実行する」を簡単に実現できます。
ちなみに、「PyAutoGUIでExcelやWordの操作を自動化する方法は?」や「Pythonを基礎から体系的に学ぶ方法は?」などを知りたい方には、以下の記事で紹介している本や教材がオススメです。
>> PyAutoGUIの入門に役に立つオススメ本や教材6選
【まとめ】PyAutoGUIで画像による条件分岐(if文)の実現方法【最短5分】
いかがでしたでしょうか?
上記で紹介した「if文」「locateOnScreen(スクリーンショット機能)」を理解していただくと、PyAutoGUIで画像を用いた条件分岐を簡単に実現できます。
最後にもう一度内容を確認しましょう。
★PyAutoGUIで画像による条件分岐を実現する方法★
・if文とlocateOnScreen(スクリーンショット機能)を使う
・条件分岐の記述方法は3パターンある
・if文はPythonの機能
・locateOnScreenはPyAutoGUIの機能
さらに体系的にPyAutoGUIを学習したい方は、以下の記事で紹介している教材がオススメです。
>> PyAutoGUIの入門に役に立つオススメ本や教材6選
コメント