【初心者向け】PythonでWindowsの操作を自動化!何でも使える方法【PyAutoGui】【Pandas】

※ 当サイトではアフィリエイト広告を利用しています。リンクは広告リンクも含みます。

この記事は約4分で読めます。
広告

PythonでWindowsの操作を自動化します。アプリ化しないでJupiterNotebookをつかうので、デバッグや改良が簡単に行えます。特徴はクリックするだけで座標を取得しリスト化します。手動で操作する部分も混ぜられるようにしています。次の操作に移行する待ち時間もリストで設定できます。各リスト間の関係がわかるようにpandasのデータフレームで表として見やすく表示します。そのデータフレームをcsvで保存することで何度でも利用できます。都度読み込んでリストに戻せるので、複数の自動化作業を保存しておけます。具体例としてGoogle Search Console(ブログの検索データ集計のツール)のデータを月ごとに集計したものをExcelでダウンロードする作業を自動化します。

対象
Windows、JupiterNotebookユーザー

Python(PyAutoGui)でWindowsの操作を自動化するのが初めてのかたは、こちらをまず見てください。

広告

動作概要

こちらの動画が一連の流れになります。Google Search Consoleのデータを月ごとに集計したものをExcelでダウンロードする作業を自動化する例で説明します。

注意事項

コードを実行するときは自己責任でお願いします。
コードの内容を理解してから実行してください。
最前面のWindowが処理対象になるため処理中は他の操作はできません。
最前面にほかのWindowが出ていると、そのWindowに対して操作してしまいます。
マウスをコントロールするため予想外の動作をするかもしれません。

緊急時の停止方法

  • 0,0の座標にマウスをもっていけばフェールセーフ機能で
    プログラムを止めることができます。
  • メッセージ画面が出ている間にJupiterNotebookの停止を押してプログラムを止めてください。
  • 最悪CTRL+Alt+Delでとまるので、その間に0,0を何回も突っつく、またはJupiterNotebookの停止を押す。またはタスクマネージャーをクリックしてJupiterNotebook(プラウザ)のタスクを終了する(いろいろ不具合が起こるかもしれないので最終手段です。)

コード

詳細は以下のZenn本参照 ↓↓

PyAutoGuiをJupiterNotebookで使うコツ

今回のプログラムで使用しているテクニックを紹介します。

JupiterNotebookの画面からの切り替え

JupiterNotebook+PYAutoGuiで他の画面を対象にしたコードを実行するとき切り替えが問題になります。今回、使用した方法です。

1、まずこのコードでアラート画面を出して処理を停止しておく。
pag.alert(text='操作する画面を前面で最大化してください。',title='準備完了',button='準備完了OK')
2、アラート画面を閉じると処理が先に進んでしまいます。なので閉じずに、操作対象となる画面を最前面で最大化表示して準備します。
3、準備完了したらツールバーにあるアラート画面をクリックしてアラート画面を最前面にもってきて「準備完了OK」をクリックすれば処理が続けられます。

こちらでもいくつか方法を紹介しています。

except KeyboardInterrupt:について

PyAutoguiで以下のような構成のコードをよく目にします。無限ループをCTRL+Cを押したときに止める処理です。

try:    
    while True:
      通常処理
except KeyboardInterrupt:
   キーボードでCTRL+Cが押された時の処理

しかし実際にこれを実行してCTRL+Cで止まらなかったことはないでしょうか。
それはJupiterNotebookで実行していることが原因です。CTRL+CはJupiterNotebookではコピーに該当するので、いくらCTRL+Cを押してもexceptの処理は実行されません。
JupiterNotebookではCTRL+Cではなく半角iを2回押せば、KeyboardInterruptが発生します。
JupiterNotebookのhelp→Keyboard shortcutsに以下のように書いてあります。
I,I: interrupt the kernel
また、これはJupiterNotebookのセルが青色(コマンドモード)のときだけ受け付けます。実行しているセルでなくても大丈夫です。セルが緑色のエディットモードのときは、そのセルにiが入力されるだけで止まりませんので注意が必要です。
今回、この処理を書いていますが実際のところJupiterNotebookが最前面に出ていてコマンドモードのときしか機能しないので、あまり意味はありません。

複数のEXCELファイルを集計する方法

ダウンロードした複数のEXCELファイルは、こちらでまとめる方法を紹介しています。

この記事を書いたイチゲを応援する
Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)

コメント

タイトルとURLをコピーしました