Pythonについて詳しく解説します
「Pythonの自動化」に興味があるのだけど、実際どんなことが出来るのか、具体例を知りたい!
…という方に向けて、6つの具体例をまとめました。
ということでこんにちは、20代怠け者(@20sInvest)です!
ぼくは2020年から本格的にPythonプログラミングの勉強を始めて4年ほどになりますが、これまでに多くの作業を「自動化」しています。
日常の小さな作業から、自動的に動くツイッターBotをつくるところまで、色々です。
実際に個人レベルで自動化を始めてみて、かなりの部分で仕事でラクをすることが出来るようになってきました。
おそらくこれからの時代、この自動化スキルを持っている・持っていないで、仕事のラクさが大きく変わってくることは必至です。
それぐらい、自動化出来ることのメリットは大きいです。
この記事では、これからPythonを学ぶことで、皆さんもどんなことが自動化でき、ラクすることが出来るのかをまとめました。
早速見ていきましょう!
目次
【前提】Pythonは便利な「ライブラリ」がある
なぜPythonが自動化に便利なのか?
というところですが、まず前提としてPythonには豊富な「ライブラリ」があることが挙げられます。
例えば、CSVファイルを操作したいなら「CSV」というライブラリがあったり、
現在の時間を取得したいなら「time」というライブラリが、
ランダムで数値を出したり、選んだりしたい場合は「random」というライブラリ、
ツイッターにつぶやいたりフォローしたりする場合は「tweepy」というライブラリがある…といった具合です。
Pythonではこうした、目的別にライブラリを読み込むことで、簡単にその機能を実行することができるわけですね。
ライブラリを使うメリット
ライブラリを使うメリットは大きくわけて3つあります。
- イチから機能を作らなくても便利な機能が活用できる
- 広く使われているので、操作方法などの情報が豊富
- ライブラリ同士の組み合わせで、色々なことが実現できる
ぼくがPythonを進める理由としては、このライブラリが他のプログラミング言語よりも多く用意されていること、そして、そのライブラリの情報がインターネット上に豊富にあるということが挙げられます。
どんなプログラミング言語でも「自動化」は可能なのですが、利用者が多いPythonは、目的ごとのライブラリがすでに用意されていることが多く、かなり簡単に自動化できます。
ライブラリが多くあるということは、それらを組み合わせて色んな仕組みをつくる・自動化することができるので、できることの幅も広いです。
これからプログラミングを勉強して自動化していくのであれば、Pythonから始めるのは必須事項です。
【具体例①】自動的にファイルを操作できる
ということで、実際Pythonでどんなことが出来るのか、早速具体例を挙げてみましょう。
Pythonには「OS」というライブラリがあり、これを使うことでWindowsのエクスプローラー(MacのFinder)の操作を自動的に実行することが出来ます。
例えば、こんなことがPythonから実行できます。
- フォルダ内のファイル一覧を表示
- 新しいフォルダを作成
- フォルダやファイル名を変更
- フォルダやファイルを削除
具体例
例えば、お仕事で取引先ごとに別々のフォルダを作って、そこに売上票などのデータを入れていくとしましょう。
取引先が2〜3社ならいいですが、これが100社もあると、いちいちフォルダの新規作成も大変ですよね。
「エクスプローラーを右クリック」→「フォルダを新規作成」→「取引先の名前に変更」
これを、100回繰り返すことになります。 うんざりしますよね。
こうした作業は、プログラミングが自動化できるもっとも簡単な例です。
Pythonの「OS」ライブラリを使って、取引先の名前の一覧のファイルを読み込んだら自動的にその数だけ新規フォルダを作成する、という自動化ができます。
具体的な処理の流れはこんな感じです。
実際にこの処理を実行してみると、自動的にこんな形でフォルダを一気に作成してくれます。
もちろん取引先を自社の店舗名にしたり、日付ごとに1年分のフォルダを作成したりすることも、自由に可能です。
こうしためんどくさい作業は、どんどんPythonに代わりにやってもらうようにしましょう!
【具体例②】自動的にExcelを更新できる
Pythonでは、Excel作業の自動化も可能です。
Pythonには「Openpyxl」というライブラリがあり、これを使うことでPythonから、Excelファイルを自由に操作することが可能です。
このOpenpyxlを使って操作できる内容としては、例えばこんなものがあります。
- Excelファイルを読み込んでデータを取得
- Excelファイルのシートの操作(名前変更・コピー・削除など)
- セルを指定して、データを書き込み
- 好きな関数で計算処理
- セルの書式設定を変更
- 画像の挿入
- 印刷の設定
- ピボットテーブルの設定
- グラフの作成
- Pythonから、VBAマクロの実行
ほとんど基本的なExcel操作は、このOpenpyxlから実行することが可能です。
Excelの操作はWindows・Mac両方とも同じ記述で操作可能です。
そしてさらに、Pythonのその他のライブラリや仕組みを経由することで、更に多くの処理を自動で行うこともできます。
具体例
例えばぼくは、株価の管理表のデータを更新する作業を、Pythonで自動化しています。
株価のデータ取得用に「Yahoo Finance API」という仕組みが用意されており、これを読み込むことで最新の株価情報をゲットすることができます。
ここで入手したデータを、Openpyxlを使ってExcelに書き込み→保存→自動実行することで、毎日更新されるデータをコンピュータが代わりにやってくれるようになります。
- Yahoo Finance APIを使って、株価データを取得
- 銘柄ごとの株価データを配列にいれる
- 「Openpyxl」ライブラリを使って、対応する銘柄の株価部分を更新
- 更新したら、Excelファイルを保存
- 毎朝9時に自動実行
【メモ】
Pythonを使ってExcelで株価情報を自動更新するスクリプトの流れ①Yahoo Finance APIを使って、株価データを取得
②銘柄ごとの株価データを配列にいれる
③「Openpyxl」ライブラリを使って、対応する銘柄の株価部分を更新
④更新したら、Excelファイルを保存
⑤毎朝9時に自動実行— 20sinvest_Test (@20sinvestB) November 16, 2020
これはあくまで株価更新の自動化ですが、毎日同じようにデータを更新するものがあれば、うまいことデータを取得することで自動化することが可能です。
【具体例③】自動的に単純作業を行える
プログラムの強みは、何度でも自動的に同じ作業を行えることにあります。
単純作業を数千回、数万回、数億回やらせても、プログラムは文句言わずに自動的に実行してくれます。
みなさんもお仕事上、つまらない単純作業をやらされるというケースも少なくないと思います。
こういう単純作業こそ、一度スクリプトを組んでしまえば自動実行してくれるようになるため、メリットはとても大きいです。
具体例
例えば、当ブログ「Tipstour」の全ての記事のタイトルを一覧化してテキストファイル(CSV)に保存したい。 という場合はどうでしょう?
やろうと思えば、「全部の記事をチェックして、記事タイトルをコピペしてテキストファイルに書き込んでいく」という単純作業をするだけでOKですよね。
ただ、Tipstourは現在1500記事近くあり、これを1500回繰り返すのは非常にめんどくさい、死ぬような作業です。
こういう単純作業こそ、Pythonプログラミングの出番です。
- ブログのサイトマップ(記事一覧)から、前記事のURLを取得
- 1つずつURLにアクセスして、タイトルを取得
- URLとタイトルを、テキストファイルに追記
- これをPythonで1500回繰り返す
上記の処理を行うスクリプトを書けば、あとは実行ボタンを押すだけで、1500回自動で実行してくれます。
はじめの「スクリプトを書く」という作業は手探りで時間がかかりますが、一度仕組みを作ってしまえば、あとはPythonが自動で実行してくれます。
【具体例④】自動的に情報収集ができる
株価をYahoo Finance APIで取得したり、ブログ記事の情報をサイトマップから自動で取得するなど、
Pythonではデータを自動的に取得することもできるため、情報収集を自動化することにも向いています。
具体例
「Requests」は指定したURLからHTMLなどのデータをダウンロードするライブラリ、
「BeautifulSoup」はそのHTMLを解析して、欲しい情報を取り出すライブラリです。
いわゆるスクレイピングと呼ばれる処理を行うためのライブラリですね。
ということは、Web上で観ることが出来る情報のほとんどは、Pythonを使うことでデータを取得することができるというわけです。
例えばアマゾンやヤフオクのWebデータを取得して、欲しい商品の毎日の価格をチェックして、安くなったら通知をする…なんてことも可能です。
(ただし、直接Webスクレイピングすることを禁止している場合もあります。 その場合は、公式に提供されているAPIの仕組みを使ってデータを取得できることが多いです)
他にも、メールを自動チェックして、特定キーワードの入っているメールだけを取り出して表示・通知する…ということも出来ます。
メールチェックの場合は「Poplib」というメール受信のライブラリがあるので、これを使うだけで実現できます。
【具体例⑤】自動的に動くツール・サービスがつくれる
これまでの具体例は自分自身の作業の自動化という面が強いですが、もちろん、他の人に役立つツールやサービスをつくることも可能です。
規模はそれぞれで、自動で収集した情報をわかりやすく加工して紹介するBotだったり、
世界中の人が使っているような巨大なWebサービスも、Pythonで作られているものがあります。
ひとまずは自分の作業の自動化だけを考えている人も、いずれはツールやWebサービスを公開して、世界中の人に使ってもらいたい!
…という目的を持つ人も、Pythonは十分、選択肢に入るプログラミング言語です。
具体例
ぼくはいくつかTwitterで自動的に動くBotを作ってます。
その中の一例として、「1500円以上の読み放題対象の電子書籍を自動的につぶやく」という「KindleUnlimited対象・1500円以上の本Bot」を動かしています。
Kindle Unlimitedとは、月額980円で対象書籍が読み放題になる定額サービスですが、その対象の中で1500円以上の本を1冊以上読めば、もうそれだけで元が取れてしまう、というものですね。
数字のメソッド ―スターゲートの解説― 【増補改訂版】
辻麻里子https://t.co/0HnDakOT9l pic.twitter.com/VQEzQEMKU9— KindleUnlimited対象・1500円以上の本Bot (@KUBooksBot) November 16, 2020
ハリー・ポッターと炎のゴブレット: Harry Potter and the Goblet of Fire ハリー・ポッタ (Harry Potter)
Rowling, J.K.https://t.co/jaYDkbujlG pic.twitter.com/gcqascjaRq— KindleUnlimited対象・1500円以上の本Bot (@KUBooksBot) November 16, 2020
iOSアプリ開発 UI実装であると嬉しいレシピブックVol.2 (技術の泉シリーズ(NextPublishing))
酒井 文也https://t.co/WOiePslLMN pic.twitter.com/H3wfrQQwF3— KindleUnlimited対象・1500円以上の本Bot (@KUBooksBot) November 15, 2020
そしてそのAPIからデータを取り出すための支援ライブラリ「AmazonAPI」を使っています。
Amazonはスクレイピングを禁止していますので、公式に提供されているAPIを使ってデータを取得してきて上げる必要があるわけですね。
TwitterのBotをはじめ、こうした「自分が役立つ」自動ツールを作っていけるという点でも、やはりPythonによる自動化は大きなメリットがあります。
【具体例⑥】自動的に稼げる
こうした仕組みを作っていくことで最終的にはお金を稼ぐことにもつながります。
例えばアフィリエイトと自動化を組み合わせることで、便利な情報をシェアしつつ対価を得る、ということも可能になってきます。
これはいわば「プログラミングを副業にする」ということでもありますね。
プログラミングの知識と収益化の方法さえわかれば、アイデア次第で、プログラムに自動的に稼いでもらうこともできるようになります。
具体例
例えば【具体例④】で紹介したように、収集した情報を自動的にWebページに公開することでアクセスを稼ぐこともできます。
Webページには広告を掲載することができるので、そこから広告収入を得る、という流れです。
例えば、こんな感じです。
- WebやAPIから情報を収集する
- 情報を加工して、役立つ形にしてまとめる
- Webアプリを動かすためのフレームワーク「Django」を使ってWebページを生成
- 生成したWebページに広告を掲載、収入を得る
プログラムが自動的にお金を稼いでくれるなんて、夢のある話じゃないですか?
この仕組みを作るためには、良いアイデアと、それを実現するためのプログラミング知識が必要になりますが、決して不可能ではありません。
というのも実際、ぼくは先日、公開しているツールからAmazonアソシエイトを経由して、報酬が発生しました。
金額としては微々たるものですが、ぼく自身は何もせず、自動的に動いているプログラムが稼いでくれた収入です。
プログラミングの勉強がてらで作ったツイッターBotから初収入が!
Kindle書籍の情報を取得して自動でつぶやくBotからですが、プログラミングから収入発生したのは初めて🤔これは夢が広がる! pic.twitter.com/TusaTMaLpe
— 20代怠け者@米国株本・出版します!2021年1月 (@20sInvest) November 1, 2020
まとめ
以上、Pythonを勉強することで自動化できること・具体例6つまとめでした!
このように、Pythonは個人レベルからでも役に立つ、様々な自動化が実現できます。
試しに、みなさんが今、毎日手動でやっている作業がPythonで出来ないかどうか、まずは調べてみてください。
「○○ Python 自動化」
といったキーワードで検索するだけで、Pythonライブラリを使った良い自動化の方法がたくさん出てくるはずです。
プログラミングによる自動化は、ただ作業を時短したり、自分は怠けたりするだけでなく、自由な働き方を実現するための方法です。
単純作業を自分の手から離してプログラムに自動的にやってもらうことで、他の作業を自由に行うことも可能ですし、
プログラムをクラウド上で実行できるようにすれば、場所やコンピュータの制限すらなくなります。
実際にPython自動化をやるようになってきたから実感しましたが、これは本当に、勉強する価値のあるスキルです。
Pythonを独学で学ぶのは難しそうだと思ったら
だけど、独学で勉強するのは難しそうだ…。
と感じる方は、今流行りのプログラミングスクールを受講するのが良いでしょう。
Pythonは人気のプログラミング言語ですので、豊富なカリキュラムがプログラミングスクールでは用意されています。
昨今は、自宅にいながらにして勉強もできますし、Pythonの場合、WindowsでもMacでも動かすことができるので、手軽に勉強できますよ。
あとはやるかやらないか、ですね。
以上、ご参考までに!
それでは!