Pythonプログラミングの醍醐味の一つが、ライブラリを活用して退屈で面倒な仕事を自動化することです。Pythonのライブラリには、「標準ライブラリ」と「外部ライブラリ」の2つの種類がありますが、どちらも仕事の自動化に活用できます。
標準ライブラリは、ファイル管理、テキスト・CSVファイルの読み書きなど、基本的な処理に用います。Pythonと一緒にインストールされるので、すぐに利用できます。
外部ライブラリは、エクセルなどのファイルの操作からAIの機械学習まで、多種多彩なプログラムに活用できます。現在20万近く公開されている中から無料でインストールできます。
今回は、これらのライブラリを活用してどのように自動化できるかを事例を用いて説明します。どれも20行前後の短いコードでプログラミングしています。これがPythonのメリットでもあります。
もう一つのメリットはソフトを起動する必要がないことです。例えば、エクセルファイルから必要なデータを抽出する場合でも、ファイルを直接読み取るのでエクセルを起動する必要はありません。
Pythonならば、プログラムをダブルクリック等で実行するだけです。作業は一瞬で完了します。Excel VBAの場合は、エクセルを起動して操作する必要があります。この差は大きいです。
初心者の方でも、Pythonプログラミングを体験できるようにやさしく説明していますので、ぜひ実際にコードを動かしてみてPythonの醍醐味を実感してください。
仕事自動化の事例
- 複数の空フォルダを自動作成する
- フォルダ内のファイル一覧を取得する
- エクセルの会員名簿をフィルタリングする
- エクセルの勤怠表の月、日、曜日を自動入力する
- パワーポイント資料を画像ファイルから自動作成する
- 複数のPDFファイルを1つに結合する
- PDFファイルを新規に作成する
- PDFファイルにページ番号を追加する
- ヒストグラムを作成する
- ブラウザを自動操作する
- 相手によって違う添付ファイルをメールで送る
- 最後に
Pythonのコードの試し方
以下の事例にはすべてソースコードを掲載しています(サンプルファイルのダウンロードもできます)。Pythonをインストールすれば実際動かすことができますので、ぜひ試してみてください。Pythonのインストールは以下のページを参考にしてください。
コードの入力にはIDLEというPython付属のソフトを利用できます。Pythonをインストールすればすぐに使えて便利です。操作方法も簡単ですので、以下のページを参考にしてください。
複数の空フォルダを自動作成する
新規フォルダを作成する作業は、以外に時間がかかるものです。ショートカット(Ctrl+Shift+N)を活用しても数が多くなるとかなりの手間です。
Pythonならば、標準ライブラリ だけの10行に満たない簡単なコードで自動化できます。100個のフォルダでも一瞬で作成できます。
以下のページでは、店舗名の空フォルダをCSVファイルの一覧から自動作成するプログラムを紹介しています。
フォルダ内のファイル一覧を取得する
フォルダ内のファイル一覧を記録しておきたいことは、比較的よくあります。通常はフリーのソフトなどを利用することが多いと思いますが、Pythonで簡単にプログラミングできます。
以下のページでは、フォルダ内のファイル一覧をファイル更新日時などと一緒にCSVファイルに保存するプログラムを紹介しています。
エクセルの会員名簿をフィルタリングする
エクセルの名簿から条件に合うメンバーを抽出するには、通常エクセルのフィルター機能を用いますが、実際に自分でエクセルを操作して絞り込む必要があります。実はこれが結構面倒です。
Pythonならばエクセルを起動して操作する必要はありません。OpenPyXL という外部ライブラリを利用して直接エクセルファイルを読み取るので、プログラムを実行するだけです。
以下のページでは、エクセルの会員名簿から有効期限内の会員だけを別のCSVファイルに書き出すプログラムを紹介しています。
エクセルの勤怠表の月、日、曜日を自動入力する
外部ライブラリのOpenPyXLを活用すれば、エクセルファイルに直接データを書き込むことも可能です。読み込みの時と同様に、エクセルを起動する必要はありません。
以下のページでは、20日締めの勤怠表に月、日、曜日を自動入力するプログラムを紹介しています。20日締めの場合、月をまたぐのでエクセルの操作では手間がかかります。
パワーポイント資料を画像ファイルから自動作成する
「毎回同じような定例の会議のためのパワポ資料」や「同じスタイルの多量のスライド」は、Pythonで自動作成すると大幅な効率化が期待できます。
python-pptx という外部ライブラリを使えば、パワーポイントファイル(*.pptx)をPythonで作成できます。定例会議の資料などは、数値などを差し替えてプログラムを実行するだけで作成できるようになります。
以下のページでは、python-pptxを活用して、「ファイル名=スライドのタイトル」にした画像ファイルを揃えるだけでプレゼン資料を自動作成するプログラムを紹介しています。
複数のPDFファイルを1つに結合する
通常PDFファイルのページを結合したり分割するには、有料のAcrobat®などのソフトが必要ですが、PythonならPyPDF2 という外部ライブラリを利用してできます。PyPDF2を利用すれば、日常よく行う既存PDFページの結合・回転・コピー・重ね合わせをPythonでプログラミングできます。
以下のページでは、1つのフォルダ内にある複数のPDFファイルを1つのPDFファイルに結合するプログラムを紹介しています。
PDFファイルを新規作成する
ReportLab という外部ライブラリを使えば、PDFページを新規に作成できます。データからPDFファイルを作成できるようになるので、宛名入りの表紙作成などを自動化できます。
ReportLabを用いて日本語のPDFファイルを作成するには少し手間が必要ですが、以下のページで詳しく説明しています。このページを参考にすれば、日本語のPDFファイルの作成をプログラムで自動化できます。
PDFファイルにページ番号を追加する
上記のPyPDF2とReportLabを組み合わせれば、既存のPDFにページ番号を追加することも簡単にできます。
ヒストグラムの作成
グラフの作成には、普段エクセルをよく利用しますが、問題は時間がかかるということです。軸やシンボルなど細かい設定までこだわると、ついつい時間をかけすぎてしまいます。
Pythonでプログラミングしておけば、データを差し替えて何回でも同じスタイルのグラフを作成できます。スタイルを変更したい場合は、コードの一部を書き換えるだけです。
Pythonでは、Matplotlib という非常に高機能なグラフ作成ライブラリを利用できます。多様な種類のグラフ作成ができるだけでなく、各種形式の画像ファイルに出力できるので、まとめて多量のグラフを作成することも可能です。
以下のページでは、エクセルで作成すると非常に面倒なヒストグラムをPythonで作成するプログラムを紹介しています。Matplotlibのインストールから丁寧に説明していますので、ぜひ違いを確かめてみてください。
ブラウザを自動操作する
システムには、ブラウザで入力しないと外部からデータを登録できないものがあります。本来はWeb APIが公開されていれば容易に自動化できますが、運用や管理の問題で公開できない場合です。
そんな場合でも、Selenium という外部ライブラリを活用して、ブラウザを自動操作すれば自動化できます。Seleniumは、Python以外にもJavaやC#でも利用されているスタンダードなツールです。
ブラウザを自動操作するには、他にブラウザ専用のドライバが必要です。PythonのSeleniumライブラリは、このドライバを介してブラウザを操作します。以下のページでは、ドライバの入手方法から詳しく説明していますので、ぜひ試してみてしてください。
相手によって違う添付ファイルをメールで送る
請求書のPDFのように相手によって違う添付ファイルを、Outlookで1つひとつ送信するのはかなり面倒です。手作業ではミスも起こりやすくなります。
そんなときは、Pythonで自動化すれば省力化できるしミスも防げます。以下の書籍では、Pythonを用いたメール送信の基本から丁寧に説明しています。ぜひ参考にしてください。
最後に
Pythonで仕事を自動化することが注目されるはじめたのには、書籍「退屈なことはPythonにやらせよう」が大きな契機になっています。この書籍には、本記事で紹介していないスクレイピング、メール、画像から、RPAのようなGUIオートメーションまで幅広い活用例が紹介されています。実際に自動化するプログラムを作成する時には、この書籍がとても参考になります。