目次クリックで該当箇所に移動します
2020年頃からの新型コロナウイルス感染拡大と共に、今まで以上に業務のデジタル化を推進する企業が増えてきました。
そのような情勢もあり業務改善コンサルティングとして話を伺うと、「業務を効率化、自動化したい」という経営層からの声を頻繁に聞くようになりました。
それら業務の多くは、解決するために大規模なシステム開発を必要とせず、比較的簡潔なソースコードのみで済むケースがほとんどです。
例としては、
・毎日の従業員のタスクを更新したい
・複数顧客からの発注リストをサマリーしたい
・毎月特定のサイトに書かれた数字をメモしておきたい
などの、『いくつかの手順は踏むものの、毎回同様の手順を繰り返す』という業務が該当します。
そこで今回は、近年人気が高く、学習コストが低いとされるプログラミング言語「Python(パイソン)」を使った業務自動化について、実際の現場ではどのような作業に使われているかを解説します。
Pythonとは
Pythonとはプログラミング言語の1種で、他のプログラミング言語と比較して簡単に習得することができ、且つ高い拡張性を持つことから初学者から熟練者まで広く使われています。
主に使われる現場としてはAI(人工知能)系ですが、Webサイトの作成や、スクレイピング(情報収集)、簡単な業務効率化などにも強い言語です。
AIとしては、ECサイトの購入履歴分析などWebサイトとしては動画配信サービスやファイル共有サービスなどが有名なサービスとして挙がります。
また、Webアプリケーションを公開できるクラウドサービスでも使われています。
基本的に無料で使うことができるので、誰でも気軽に始めることが可能です。
これまで主流となっていたプログラミング言語はJava(ジャバ)やC言語でしたが、月1回更新されるプログラミング言語の人気指標TIOBEインデックスによると、2021年12月にPythonが首位を獲得し注目されました。
(出典:TIOBEインデックス)
今回はそのPythonについての特徴と、実際の使用例などを紹介していきます。
Pythonの特徴
Pythonを他言語と比べた際の主な特徴は以下の通りです。
– 関連サイトや書籍が充実していて、学習しやすい
– ソースコードが簡潔で可読性が高い
– ライブラリが充実しているので、さまざまな用途で応用できる
– 他言語に比べ実行速度が遅い
– コーディング規約を守らなければならない
その理由をご紹介します。
学習しやすい
Pythonという言語自体は30年程前からありますが、人工知能やAIと親和性が高い言語として注目され、近年のAIブームに乗って広く知られるようになりました。
このブームのおかげで、学習するためのサイトや書籍が多く生まれ、初心者でも試しやすい言語として活用されるシーンが増えています。
学習するサイトとしては、日本語の公式ドキュメントや、東京大学のチュートリアルなどが有名です。
ソースコードが簡潔で可読性が高い
Python では、とてもコンパクトで読みやすいプログラムを書けます。Python で書かれたプログラムは大抵、同じ機能の C 言語, C++ 言語や Java のプログラムよりもはるかに短くなります。
プログラムにとって「読みやすさ = 生産性」と言い切って良い程、可読性は重要です。複数人でシステムを開発する場合、読みにくいコードがあれば属人化の原因になります。場合によっては、他のメンバーにコードの内容を説明する必要が出てきます。
また、経験の長い熟練者でも過去に書いた自身のコードを細かく覚えていないため、個人開発においても読みにくいコードで問題ないということはありません。
プログラマーが説明をする時間を削ることができ、不具合が発生した時の原因特定も素早く行えれば、有意義なシステム設計に時間を使えるため、生産性の向上につながります。
以下はPythonで書かれたコードと、他言語(C言語)で書かれたコードの例です。
【Python】
【C言語】
2つとも全く同じ結果となりますが、上のコードの方がスッキリとしていて見易く感じられるかと思います。
ライブラリが充実しているので、さまざまな用途で扱える
プログラミングとは、プログラムを作成しコンピューターに実行してほしい作業の指令を作ることです。具体的には、一連の機械の動作をテキストでまとめてファイルにします。つまり誰かが作ったファイルを流用すれば、同じことを自身のコンピューターでも再現できます。
エンジニア、プログラマーの世界で言う「ライブラリ」とは、「他の人へ配布できる状態でいくつかの機能をまとめたもののこと」を指します。どのプログラミング言語でもこの技術は使うことができ、有志の個人や組織がインターネット上で配布しています。
Pythonではこのライブラリが充実しているため、自分で全てのコードを書く必要が無く、ライブラリを流用するだけでシステムのほとんどが開発できます。
そして、ライブラリを使うメリットは時短だけではありません。 どうしても独自に開発したシステムには、重大な機能のバグやセキュリティの欠陥が残りますが、ライブラリを使えば少なくともその機能の可用性は担保されます。
実行速度が遅い
技術的な理由により、Pythonは他の言語(CやCOBOLなど)に比べて実行速度が遅いため、実行速度が求められる基幹システムなどの大規模なシステム開発はPythonは不向きとされています。
コーディング規約を守らなければならない
Pythonは可読性を高めるという思想があるため、コードを書くのにいくつかのルールがあります。ルールを守られていないプログラムは動かないようになっています。
他の言語を経験してきたプログラマーはこのルールを理解するのに戸惑うかもしれません。
Pythonを活用した業務自動化の例
それでは具体的に、これまでに依頼されPythonで開発してきた業務自動化の例を紹介します。
クローリング、スクレイピング
クローリング、スクレイピングとは、どちらもウェブサイト上の情報を自動収集することを指します。
Pythonには、それらを簡単に実装することができるライブラリが存在するので、この分野でも多く使われます。
使用例としては、特定の分野について24時間常に監視するBot(ボット)を作り、SNSやホームページで情報が発信され次第即座に担当者にアラートを送る。といったことや、Webメディアに掲載されている記事のタイトルを瞬時に収集する。などが可能です。
更に使いこなせば、Webブラウザ(Google ChromeやSafariなど)の自動制御によって、「任意のサイトの決まった場所を定期的にクリックする」「AIに学習させる画像データをさまざまなWebサイトから10万枚集める」といったことも可能です。(私的利用や情報解析が目的の場合に限り使用可)
Excelなどのファイル作成
・クラウドサーバーにあるフォルダを開く
・その中のエクセルファイルをダウンロードする
・別資料に記載されている顧客情報を転記・入力する
・入力した内容に不備が無いかダブルチェックする
・社内のチャットツールで出来上がったファイルを共有する
業務自動化、改善を依頼された中でこのような作業マニュアルを沢山見てきました。
未だに多くの現場で、このようなルーチン作業が自動化されていないかと思います。
単純な作業ではあるものの、さまざまなシステムやアプリの間を横断するので自動化がし辛い内容です。
しかし、Pythonであれば
– クラウドサーバーからのファイルダウンロード
– エクセル編集
– 条件による処理の分岐
– クラウドサーバーへのファイルアップロード
– チャットツールへの完了通知
という一連の流れを、基本機能とライブラリを使って実装し、自動化することが可能です。
まとめ
今後、よりデジタル化が進む社会に取り残されないためにも、プログラミング技術の習得は非常に重要になると考えられます。
– 関連サイトや書籍が充実していて、学習しやすい
– ソースコードが簡潔で可読性が高い
– ライブラリが充実しているので、さまざまな用途で応用できる
という特長から分かる通り、プログラミング未経験の初学者にとっても、業務の自動化を行うにあたりPythonは
はじめやすい言語です。
拡張性も高いため、プログラマーの成長と共に作ったシステムも成長していける期待もあります。
業務自動化の1歩目として、Pythonは有効なステップの一つと言えるでしょう。