【Python】 Pythonで日常業務を自動化処理しよう | プログラミング入門ならWEBCAMP NAVI
【11月枠も残りわずか】転職保証コース

【Python】 Pythonで日常業務を自動化処理しよう

python

これまで人の手でやっていた処理をプログラムにやらせることで、これまで仕事において頻繁に発生していた単純な繰り返し作業をなくすことができます。

この自動化処理を実装するのにぴったりな言語がPythonです。豊富なライブラリ(処理を一かたまりにした部品)がたくさん開発されていることから、このライブラリを組みわせることでプログラム未経験者でも複雑な機能をもつコードを実装できます。

Pythonならば、非プログラマの方でも日々の業務の無駄な作業を自動化することも可能なのです。

pythonで業務の自動化

プログラミング

自動化処理を簡単に実装できるPythonですが、一口に「業務自動化」といっても、Pythonでの業務自動化には、大小さまざまな規模のものが考えられます。働き方改革の一環として全社で自動化を推進するような大きなプロジェクトもあるでしょう。一方、実装した数行のプログラムを実行するだけでも、何かしらの作業を自動化したことになります。
本記事では、普段のデスクワークの中で行っている身近な業務を対象に、Pythonにより自動化できる具体的な事例を挙げて解説していきます。

本記事の事例からご自分の日々の業務で自動化できる部分がないかどうか検討していただき、日々の業務自動化の際の参考にしてみてください。

Pythonの自動化処理でできる例

ブロック

Pythonは前述したようにPythonの標準ライブラリに加えて、サードパーティー製の豊富なライブラリがあります。従来は一からアルゴリズムを考えて実装する箇所もライブラリの部品を組み合わせて記述していくことでやりたいことを実現していくことができるようになります。それぞれの自動化の項目において、自動化するために便利なライブラリの紹介を交えて解説していきます。

それでは以下で、自動化処理の実例を見ていきましょう。

ブラウザの自動操作

PythonのSeleniumというライブラリを使うと、プログラムからブラウザに対してあらゆる操作をすることができるようになります。ブラウザの制御はもちろん、クリックやフォームの送信やサイトへの自動ログイン等、Seleniumがあれば自動化でできない操作はないといっても過言ではありません。

ブラウザの自動操作であれば、例えば他社とのやり取りで日時や月次等でWeb上のファイル転送システム等でやり取りをしているファイルがあった場合等にダウンロード作業を自動化することができます。

①Webのファイル転送サービスにアクセス

②自動ログイン

③ダウンロードページに移動

④必要なファイル名のリンクを押してファイルをダウンロードする

といった実装で実現できそうです。取得するファイルの種類が多い場合は、ダウンロード後にファイルをフォルダにまとめるところまで実装しておけばさらに重宝するでしょう。

画像の操作

Pythonには、画像処理ライブラリPillow(PIL)というライブラリがあります。Pillowには、画像の切り抜きや、サイズ変更、画像内容の編集を簡単に行うメソッドが用意されています。これらの機能により、一度に何千何百というオーダーの大量画像を一括して自動編集することが可能になります。

例えば、ブログや記事を書くのに用意しておいたサイズの大きなjpeg画像を、まとめて1M以下まで容量を圧縮したい場合があるとします。

この場合、Pillowのメソッドで既存ファイルを読み込み、画像に対してjpeg保存メソッドの引数のquality値を徐々に下げていき、一定のサイズまで落とすループを作ります。さらにこの作業を指定したフォルダの中にあるすべてのjpeg画像に対して同様の処理を繰り返し行うループを作れば、画像をソフトでいちいち開くことなく、解像度と容量の兼ね合いを考慮した処理を一括で行うことができるようになります。

Excelの操作

Excelの操作を行うにはExcel VBA(マクロ)が有名ですが、PythonでもOpenPyXLというライブラリを使うことで、セルやシートなどのExcelの内容を操作することができるようになります。例えば、他のExcelを参照して所定のテンプレートに対してデータを流し込み、新規保存するような作業を自動化するような実装が考えられます。

例えばExcelで請求書と納品書を作成する業務がある場合に、あらかじめ用意した納品物の金額や個数などを一覧化したファイルを読み込んで、請求書と納品書の所定のフォーマットにしたがって新たにファイルを保存するような作業が自動化できるようになります。

また、Pythonの学習をしたい人が、これまでExcel VBA(マクロ)で実装して動作していたコードをPythonに移植するというだけでもとても面白いプロジェクトになります。Pythonのライブラリを使うことによって、いかに短いコードで実装できるか体感できる良い機会になるでしょう。

PDFやwordの操作

PDF操作にはPythonライブラリの「ReportLab」「PyPDF2」「pdfminer」があれば大抵の操作はできるようになります。ReportLabは新規でPDFを作成することができ、PyPDF2は既存PDFのページ結合・回転等ができます。pdfminerはPDFを解析するためにテキストを抽出するライブラリです。

ReportLabで普段の業務の中で作成している帳票を値の入力や別ファイルなどから値を参照して同じフォーマットで作成したり、pdfminerで大量のPDFから文字列を検索して必要な部分を抜き出すようなことができます。

wordのドキュメントについてもPython-docxというライブラリで文書の内容を取得したり、新規作成、変更等が可能です。このライブラリで画像の貼り付けなどの操作も自動化できるので、大量のdocxファイルに画像を挿入したい場合がある場合はぜひ自動化してみましょう。

また、先に紹介したExcel操作のライブラリ「OpenPyXL」と「Python-docx」をりようすることにより、Word上の表をExcelに一括変換し、Excelの一覧として管理するような使い道も考えられます。Wordで処理をするよりもExcelで計算式や関数などを入れて動的に処理をしていくことができるようになります。大量の表がwordファイルにある場合は時間の短縮に役立つでしょう。

クローリング・スクレイピング

クローリングは複数ページの情報を収集する技術で、スクレイピングはウェブサイトから情報を取得し、取得した情報を加工する技術です。これらを組み合わせてインターネット上の大量のデータから必要なデータのみを抽出し、情報にアクセスしやすいように一覧化したり、見やすい情報に加工すること等ができます。

PythonにはRequestとBeautiful Soup4というスクレイピングのライブラリがあります。

Scrapyというフレームワークは、クローリング+スクレイピングの手法を実現することができるフレームワークで、複数ページにまたがる大量の情報を対象としたスクレイピングのプログラムも気軽に実装することができます。

例えばネットオークション等で実際に市場で取引されているデータから適正価格を知りたい場合などに、相場を知りたい商品ごとの希望価格や落札価格をスクレイピングして一覧化することで、希望価格に対して落札される適切な価格を分析しやすくなります。

メールの取得・自動送信

pythonのライブラリ「smtplib」「imaplib」を使って、SMTPやIMAPのサーバに接続し、自動作成したメールを送ったりメールを受信したりすることも可能です。

またgmailには公開されているAPIがあります。このAPIを利用することで、メールの送受信のみでなくラベルの参照等、Gmailならではの機能を使った実装をすることができるようになります。GoogleのAPIはOAuth2.0による認証を行っているため、プロジェクトへの認証情報の追加してトークン取得する必要があります。

Pythonでの使用方法は以下の公式ガイドに記載してあります。
Gmail APIガイド(Python)

【Pythonで自動化】おすすめの本

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ーノンプログラマーにもできる自動化処理プログラミング
技術書の出版で有名なオライリー社の書籍ですが、公式な書籍の紹介の中で「対象はノンプログラマー」と謳っています。プログラミング未経験でもPythonを使って自動化処理ができるように書かれている内容になっています。第一部ではPythonの基本的な解説をしているので、Pythonの文法を知らない初心者でも必要な基礎知識を身につけることができます。

第二部からはより実践的な自動化の内容を中心に書かれています。内容は多岐にわたっていて、「ファイルの読み書き 」「ファイルの管理」「Webスクレイピング」「Excelシートの読み書き」「電子メールやSMSの送信」「画像の操作」等、業務や生活の自動化のヒントになる様々なテーマを解説しています。

まとめ

本記事では、Pythonでの業務自動化をテーマに記載してきました。
人の手でやっていた大量の細かい処理も一括してPythonで自動化することができます。標準ライブラリやサードパーティー製のライブラリが豊富にあることから、ノンプログラマーでも複雑な機能を実装することができます。

Pythonでの自動化についてはWeb上でもアイデア例やサンプルを載せているサイトがありますので、これを機に探してみるといいでしょう。身近な事例で自動化できることがないか考えてみてください。ノンプログラマーでPythonを覚えたい人も、身近な業務を楽にする事から始めてみてはいかがでしょうか。

11月枠も残りわずか!!

エンジニア転職を目指すなら…

転職保証付きプログラミングスクール

で未経験からエンジニア目指そう

 

✔︎未経験からの転職 ✔︎会社の将来が不安 ✔︎給与や待遇に不満がある

 

転職保証コースは質の高いカリキュラムで転職成功率98%