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)
コメント