はじめに
Pythonはここ最近人気があるプログラミング言語として確固たる地位を確立しております。その人気の秘密として最も有力なのが、ライブラリの豊富さです。ライブラリとは、プログラムに機能を追加するプラグインのようなものです。上手に使えば少ないコード量で機能を実現できます。そこで、今回はいくつかメジャーなライブラリをご紹介と、ライブラリの使い方を学んでいきたいと思います。
レッスン1.メジャーなライブラリの紹介
まずは、Pythonでメジャーなライブラリにはどのようなものがあるのでしょうか?Pythonのライブラリは星の数ほどありますが、ここではその代表的なものをご紹介します。
Pandas
データ分析のライブラリです。CSVやExcelファイルを読み込んで、データの集計や並べ替え、グラフ作成などができます。
pillow
画像処理のライブラリです。画像を読み込んで、サイズ変更や回転、白黒化など、比較的シンプルな画像処理に活用できます。
PyAutoGUI
GUI自動化ライブラリです。マウスカーソル操作や、キーボード操作を再現させることができます。マクロのようなものだと思ってください。Webページの操作テストや、コマンドライン操作に対応していないアプリケーション等に用いることができます。
レッスン2.ライブラリの追加方法
使いたいライブラリがあった場合、初期インストールされているもの以外は、追加する作業が必要になります。但し、メジャーなライブラリの場合、インストールはPythonのコマンドから簡単に実行できます。今回はそちらの方法を説明します。
例として、前章で紹介した「PyAutoGUI」をインストールしてみます。
最初にVisual Studio Code(以下VS Code)を開きます。メニューバーから、「ターミナル→新しいターミナル」を選択してください。
ターミナルウィンドウが開いたら、下記のコマンドを入力し、エンターキーで実行してください。
pip install pyautogui
インストールが始まりますので、しばらくお待ちください。最後の方に下記のようなメッセージが出れば成功です。
Successfully installed PyTweening-1.0.3 mouseinfo-0.1.3 pyautogui-0.9.52 pygetwindow-0.0.9 pymsgbox-1.0.9 pyperclip-1.8.1 pyrect-0.1.4 pyscreeze-0.1.26
これでライブラリの追加方法は終了です。このように「pip install」コマンドを使えば、簡単にライブラリを追加することができます。
レッスン3.実践演習(GUI操作)
では、ここからは少し進んだ内容として、ライブラリを用いて実践演習を行ってみましょう。折角ですから、先ほどインストールしたPyAutoGUIを使って、キー操作マクロと、マウス操作マクロを作ってみます。
1,キー操作マクロ
まずは、ソースコードの新規ファイルを作ります。ファイル名は「gui.py」とします。ファイルの種類はPythonを選んで下さい。
まずは、ライブラリをインポートします。ファイルの最初で宣言しましょう。
import pyautogui as pag
import文を書くことで、ライブラリが使えるようになりますが、asにつなげて別名を付けることができます。長い名前のライブラリを使う場合、毎回ライブラリ名を書くのが面倒な場合に短くする、またはライブラリ名が変わるケースで入れ替えを容易にするために用いるものです。今回は略称として「pag」という別名を付けることにします。
次に、ライブラリを使った処理を追加していきます。
import pyautogui as pag #一つ前に開いたウィンドウにフォーカスを移動 pag.hotkey('alt','tab') #文字列を打ち込む pag.typewrite('Hello world')
ライブラリに含まれるhotkeyという関数で、キーボード入力を再現できます。
では、コードの準備ができたところで、「メモ帳」を開いてから、上記のコードを実行してみましょう。メモ帳にフォーカスが移動して、「Hello world」と打ち込まれたかと思います。
たった3行のコードで、このようなキー操作を再現できることがお分かりになったかと思います。
2.マウス操作マクロ
次に、マウスを扱うケースを見てみます。マウスで特定のアイコンを開く動作を実現してみたいと思います。
方法としては、事前にアイコンのスクリーンキャプチャをとっておき、その画像と一致するアイコンをデスクトップから探し、ダブルクリックで開くという動作になります。マウスの座標指定も可能なのですが、座標を直接指定してしまうと、デスクトップのアイコンの順番が変わった場合や、ディスプレイの違いで使えなくなってしまう可能性があるためです。
PyAutoGUIにはそのような動きが簡単に実現できる機能が備わっています。
まずは、アイコンのキャプチャファイルを用意しましょう。Windows標準搭載の画像キャプチャツールであるSnipping Toolを使います。使ったことが無い方のために、その方法を見ていきましょう。
まずはSnipping Toolをスタートメニューから検索して開きます。
次に、アイコンをスクリーンキャプチャします。まずは、モードを「四角形の領域切り取り」に変更します。
設定を変更したら、「新規作成」を押します。
キャプチャのモードになるので、デスクトップにあるGoogle Chrome等のブラウザのアイコンをドラッグアンドドロップで四角に囲んで切り取ります。
うまくキャプチャができたらPNGファイルとして保存します。フロッピーのアイコンを押してください。名前は「icon.PNG」としておきましょう。保存場所は、gui.pyと同じ場所に保存してください。
では、準備ができたので、Python側のコードを作っていきます。gui.pyを書き換えます。アイコンを探して、ダブルクリックするというコードを入れていきます。
import pyautogui as pag #画像ファイルで指定したアイコンの場所の座標を返す x,y = pag.locateCenterOnScreen("icon.PNG") #アイコンの場所をダブルクリックする pag.click( x=x, y=y, clicks=2, #ここを1にすれば、シングルクリックになる interval=0.1, )
それでは実行しますが、その前に先ほどキャプチャしたデスクトップのアイコンが見える状態で実行してください。デスクトップがすべて見えていなくても、アイコンが見える状態までウィンドウをずらしてもらえば問題ありません。
これでキャプチャしたブラウザが開いたでしょうか?この機能は比較的柔軟に利用することができます。例えば、開いたアプリケーションから、特定のボタンを押すといったケースでも、ボタンのキャプチャ画像を用意しておけば実現できます。マウスの座標は画面の解像度によっても場所が異なるケースがあるので、このような画像からの検索機能を使って、確実に実行できるように考慮しておきましょう。
レッスン4.アプリケーションとして実行する方法について
Pythonで作ったスクリプトをダブルクリックで実行するように、アプリケーションとして使うこともできます。実際に簡単なスクリプトで試してみましょう。今回は、pyファイルが置いてあるディレクトリに空のテキストファイルを作るスクリプトを作ります。
まずは、空ファイルを「textmake.py」という名前で作り、下記のコードを入れます。指定した名前で空ファイルを作るコードになります。
# ファイル、フォルダを扱うためのライブラリ import os # このファイル自身のパスを取得し、テキストファイル名を決める filepath = os.path.dirname(os.path.abspath(__file__))+"\\output.txt" # 書き込みモードでファイルを開く。無い場合作る fp = open(filepath, 'w') # テキストの書き込み fp.write('') # ファイルのクローズ fp.close()
コードが完成したら、ダブルクリックで実行するために、拡張子の関連付けを変えます。右クリックからファイルの関連付けを「Python」に変更しましょう。下記でPythonを選んでしまうと、今回の1回だけPythonで実行されてしまうので、関連付け自体を変更します。
この画面で「常にこのアプリを使って.pyファイルを開く」のチェックを入れておけば、次からはダブルクリックで実行することができます。
これで実行されます。pyファイルと同じディレクトリを確認してみてください。
テキストファイルができましたでしょうか?このようにファイル操作に手軽に用いることができますので、自動化等に便利です。
パス名を指定する際に“\”等の区切り文字を使うことになると思いますが、この文字は予約文字となっておりエスケープしてあげないと使うことができません。そのため、例えばC:\test\pythonのようなパスを表したい場合には”\”マークを2つ重ねてC:\\test\\pythonのように表現する必要があります。パスを扱うときにバグになりやすいポイントですので注意してください。
おわりに
今回はライブラリを使ったPythonの実践的な使い方と、後半はスクリプトとしての実行を学びました。これらの方法を使うと、様々な用途で効率化を図ることができます。従来バッチファイルで行っていたファイル操作も、Pythonを使うことで自由度も高まりますし、より分かりやすいコードで書くことができますので、メンテナンス性の面でもメリットがあります。冒頭でもご紹介したようにPythonのライブラリは豊富にありますので、ご自分の用途に合ったライブラリがきっと見つかるはずです。Pythonは人気の言語ですので、そういった情報もインターネット上に数多く存在しますので、探してみてください。最後までお読みいただきありがとうございました。
No Comments