【学習ロードマップ付き】実例で理解するPythonで自動化できること5選!

【学習ロードマップ付き】実例で理解するPythonで自動化できること5選!

Python自動化 学習ロードマップ

こんにちは、業務自動化ツール開発担当の吉池(@valmore_myoshi)です。

Pythonによる自動化が注目を集めていますね。よくあるルーチンワークをいくつか取り上げてPython自動化の方法を解説する本も出版されています。

本記事をご覧いただいている皆様もPythonを使った自動化に関心をお持ちだと思いますが、一口に自動化といってもできることはたくさんあります。

そこで本記事では、Pythonを使って自動化できることを5つに分け、実例を交えて解説します。自動化したいことが見つかったらすぐに学習に移れるようロードマップもご用意!

ぜひPython自動化の入門としてお役立てください。

Pythonを選ぶ理由

Python自動化について知る前に、数あるプログラミング言語のなかでもなぜPythonが注目されているのでしょうか?

その理由は以下の2つあります。

  • 学習コストが低い
  • ライブラリが豊富

学習コストが低い

まずは一つ目、Pythonは他のプログラミング言語と比較して学習しやすいといえます。少ないコード量でプログラムを書くことができ、コードの読みやすさを重視して設計されたプログラミング言語だからです。

人気の高いプログラミング言語「Java」と比較してみましょう。「Hello, world!」と5回出力するプログラムをJavaとPythonで書き比べてみます。

# Python
for _ in range(5):
    print(‘Hello, world!’)

# Java
public class HelloWorld{
   public static void main(String[] args) {
        for(int i = 0; i < 5; i++) {
            System.out.println("Hello World!!");
        }
   }
}

ご覧の通り、Javaが7行必要なプログラムをPythonではわずか2行で書くことができ、さらに読みやすいことがおわかりいただけると思います。ただでさえ挫折しやすいプログラミング学習において学習コストが低いことはPythonが選ばれる大きな理由です。

ライブラリが豊富

Pythonが選ばれる理由2つ目はライブラリが豊富なことが挙げられます。耳慣れない言葉ですが、再利用可能なプログラムのことをライブラリと呼びます。

例えば、Pythonで自動化プログラムを書いているときに「Excelを操作したい」と思ったとします。PythonだけでExcelを操作するにはかなりの分量のプログラムを書く必要がありますが、ライブラリを使えば数行書くだけで操作できるようになります。

つまり、「Excelを操作したい」といったみんながよく使うであろう機能をプログラムとしてまとめ、使いまわせるようにしたものがライブラリです。

Pythonはこのライブラリの種類が豊富なのです。先述したExcel操作はもちろん、ホットなAI開発、もちろん自動化に適したライブラリも揃ってます。自動化したいと思ったときに効率的に開発を進められるライブラリが揃っていることがPythonを選ぶ理由の一つです。

Pythonで自動化できること5選

ライブラリが豊富なPythonですが、ここでは自動化できることを大きく5つに分けて解説します。すでに自動化したいことがある方はもちろん、特別自動化したいことがない方もPython自動化のイメージ理解に役立ててください。

Webからのデータ収集

PythonはWebから自動的にデータ収集するスクレイピングが得意です。手作業だとブラウザにキーワードを一つずつ入力して検索する手間がかかりますが、スクレイピングであれば指定したWebサイトにアクセスし、目的の情報を自動で取得できます。

例えば、競合商品の価格を毎日取得し、自動で価格調査するといった使い方が考えられます。価格といった文字情報だけでなく、画像も取得できます。下記動画では、ECサイトから商品画像を自動で取得してくるプログラムを実行しています。

PythonにはBeautiful SoupScrapyといったスクレイピングに特化したライブラリ、フレームワークが用意されています。需要が高く、初学者が最初にPython自動化を覚える題材としてもとっつきやすい分野です。

ブラウザ操作

Webサイトからのデータ収集だけでなく、ブラウザ自体を人と同じように操作することもPythonなら実現できます。具体的にはSeleniumというブラウザ操作に特化したライブラリが用意されており、クリックやテキストフィールドへの文字入力を自動化できます。

下記動画は、Selenium IDEというブラウザ操作を記録して、その通り実行するGUIツールのデモです。Pythonを使わないGUIツール版ですが、Python版も似たような挙動なので参考にしてください。

Excel操作

Python自動化と聞いたらExcel操作の自動化が目的の方が一番多いのではないでしょうか?Excelへのデータ入力やコピーアンドペーストといった転記作業もPythonで自動化できます。

Excelだけで完結する作業ならExcel操作に特化したVBAの方が適していますが、

「ExcelデータをWebアプリに転記したい」

「Web上のデータをExcelに転記してレポート作成したい」

といったようにExcelだけでなくブラウザや他のアプリと連携させたいときはPythonでプログラムを作成するのがオススメです。

Pythonを使ったExcel操作に興味がある方はこちらの記事をご覧ください。
Excel作業を自動化!PythonからExcelを操作できるopenpyxlの使い方

画像編集

画像編集もPythonならおてのもの。画像処理ライブラリ「Pillow」を使えば、画像の拡大・縮小をはじめ、画像の一部を切り取るトリミングといった編集も一括処理できます。

画像処理ライブラリPillowを使った画像編集
画像処理ライブラリPillowを使った画像編集

ブログにアップロードする画像の加工や重要書類のモザイク処理など、画像を扱う作業はたくさんあります。ペイントツールで1枚ずつ画像編集する手間にお困りでしたらPython自動化をオススメします。

Pythonライブラリ「Pillow」を使った画像処理に興味がある方はこちらの記事をご覧ください。
【よくある加工例11選】Pythonで画像を一括処理できるPillowの使い方

API連携

APIとは、Webサービスの接点のこと。Twitterであればツイートの投稿やいいねの実行といった機能がありますが、Twitter APIを利用するとこれらの機能がTwitter上だけでなくPythonなどのプログラミング言語からも使えるようになります。つまり、Twitterを開かなくてもプログラム側からTwitterの機能を使えるということです。

公開されているAPIを組み合わせることで、さまざまな業務を自動化できます。最近では、システムを保有するのではなく、クラウドサービスとしてSaaSを利用するのが一般的です。SaaSとして提供されているサービスはだいたいAPIを公開しているので、Python自動化に適しています。

下記動画では、Gmail APIを使ってメール送信を自動化しています。
解説記事はこちらをご覧ください。
Gmail APIとPythonを使ってメール送信を自動化する方法

Pythonによる自動化を習得する方法

これまでいくつかPython自動化例を紹介してきましたが、興味をそそる分野はありましたか?Python自動化の習得に一番大事なのは「何を自動化したいのか」です。目的と言い換えてもいいですね。

ご覧いただいたようにPythonはライブラリが豊富なのでいろんなことを自動化できます。Pythonの基礎文法はすべて必須だとしても、その先の「何を自動化したいのか」が決まらないと、陸で泳ぎ方を勉強するようなものです。

競泳には競泳のための、飛び込みには飛び込みのための練習方法があり、目的を持つということは本当に必要な勉強のみに集中できるようになるということです。学習方法については何も言うことはありません。自習もよし、プログラミング教室に通うもよし、目的さえ明確であれば自分にあった学習方法を選べばいいと思います。

基本的にはPythonの文法といった基本的な書き方を覚えたあとに、目的に応じたライブラリの使い方を学ぶという流れです。目的に応じて学ぶべきライブラリをまとめたので参考してください。

Python自動化 学習ロードマップ

まとめ

Pythonで自動化できることを解説しました。可読性に優れ、少ないコード量でプログラムを書けるPythonはまさに初心者にうってつけの言語です。

ライブラリも豊富でスクレイピングやブラウザ操作、Excel操作といったさまざまな作業を自動化できます。APIを駆使すればより広範囲にわたってWeb上の作業削減につながります。

自動化対象が多岐にわたることで何から手を付けていいかわからない方もいると思いますが、「何を自動化したいのか」を先に決めるのがオススメです。目的が明確になれば、Pythonの基本文法と目的に応じたライブラリを学ぶだけなのでスムーズです。

少しでも自動化に興味を持っていただき、Pythonに取り組むきっかけになれば幸いです。