Python入門後に作る自動化3例と学習期間の目安
画像出典: パブリックドメイン(Wikimedia Commons)
Python入門を終えた次の一歩には、Excel集計の自動化・メールの一括送信・Webからの情報収集という3つの作例が向いています。いずれも基本文法(変数・繰り返し・条件分岐・ファイル操作)が身についていれば着手でき、ファイル整理やCSV処理レベルなら2〜3週間程度で実装できる、という目安が学習系メディアで紹介されています。ブラウザ操作や、外部サービスがプログラム向けに用意した窓口(API)を通じたデータのやり取りまで広げる場合は3ヶ月程度を見込むのが現実的です。
入門書やオンライン講座を一冊終えたところで訪れる、あの妙な空白の時間です。文法は分かる。でも白紙のエディタを開くと、書くことが何もない。ここでつまずくのは、実力不足ではなく「題材がない」だけのことがほとんどです。
正直なところ、この段階で必要なのは新しい文法ではありません。自分の手元にある面倒な作業を1つ選んで、それをPythonに肩代わりさせる。それだけで、覚えた文法が急に「使える道具」に変わります。以下では、その題材として定番の3つを、必要な学習時間の目安とあわせて見ていきます。
なぜ「自動化」が入門後の題材として向いているのか?
入門後の題材として自動化が優れているのは、ゴールが自分で判断できるからです。ゲームやWebアプリを作ろうとすると「どこまでできれば完成か」が曖昧になりますが、自動化は違います。今まで手で30分かけていた作業が数秒で終われば、それが完成の証拠になります。
もうひとつの利点は、使う文法が入門書の範囲とほぼ重なることです。ファイルを開く、行を順番に読む、条件で分ける、書き出す。for文とif文とファイル操作、つまりすでに学んだものだけで最初の1本が動きます。
- 変数とデータ型(文字列・数値・リスト)が読める
- for文で繰り返し処理が書ける
- if文で条件分岐が書ける
- ファイルの読み書きを試したことがある
- pipでライブラリを追加できる
この5つが揃っていれば、以下の作例1は今日から着手できます。逆に、どれか曖昧なところがあれば、そこだけ入門書に戻ってから進んだほうが速いです。
作例1: Excelの集計と転記を自動化する(openpyxl)
最初の1本には、Excelの集計をおすすめします。openpyxlは、PythonからExcelファイル(.xlsx)を扱うための定番ライブラリで、読み込み・書き込み・書式設定・数式の操作まで一通りできます。ループでセルを順に読む処理程度から、データ変換に取りかかれます。
想像しやすい例を挙げます。10店舗分のExcelファイルがフォルダに入っていて、それぞれのB列にある売上を合計し、報告用のシートに転記する。手作業なら30分かかるこの作業が、Pythonなら数秒で終わるという例が紹介されています。月末に毎回やっている作業なら、1年で6時間が浮く計算になります。
- pip install openpyxlまずライブラリを入れます。ここでpipの使い方に慣れておくと、以降がすべて楽になります。
- 1ファイルだけ開いて1セル読むいきなり10ファイル処理しようとしないこと。1つのファイルのB2セルの値をprintするところまでを、最初の到達点にします。
- for文で列を最後まで走らせるB列を上から順に読んで合計する。ここで初めて入門書のfor文が仕事をします。
- フォルダ内の全ファイルへ広げるosモジュールでファイル名の一覧を取り、同じ処理を繰り返します。
- 結果を新しいシートに書き出す書き込みまで通って、はじめて「自動化」になります。
この5段階を1つずつ動かしながら進めるのが、挫折しないコツです。段階3まで来れば、もう手作業より速い状態になっています。
作例2: 定型メールの一括送信を自動化する(smtplib)
メール送信は、Python標準のsmtplib(メールを送るための標準ライブラリ)で扱えます。作例1で覚えたExcelの読み込みと組み合わせると、宛先リストのExcelを差し替えるだけで複数人に一斉送信するコードが組めます。定型の連絡やレポート送付のように、内容がほぼ同じで宛先だけが違う作業と相性が良いところです。
構造としては、作例1の「読む」の先に「送る」が付いただけです。Excelから宛先と氏名を読み、本文の中の名前部分だけを差し替えて、1件ずつ送信する。新しく覚えるのはメール送信の設定部分だけなので、作例1を終えていれば上乗せの負担は小さく済みます。
メール送信は、失敗が自分の中で完結しません。宛先の取り違えや誤送信は、取り消しがききません。練習の段階では、必ず自分のアドレスだけを宛先にしたリストで試してください。また、勤務先のメールアカウントを使った自動送信は、社内規程で制限されている場合があります。業務で使う前に確認を取るのが順序です。学生の方が学習目的で試す場合も、送信先は自分のアドレスに限定しておくのが安全です。
作例3: Webサイトから情報を集める(requests / BeautifulSoup)
3つ目は、Webサイトからのデータ抽出です。価格のチェックやニュースの収集といった用途に使われ、requests(Webページを取得するライブラリ)とBeautifulSoup(取得したHTMLから必要な部分を取り出すライブラリ)の組み合わせが一般的です。
3つの中で、これがいちばん時間のかかる題材です。理由ははっきりしていて、Pythonの文法に加えてHTMLの構造を理解する必要があるからです。ページのどこに欲しい情報があるのかを、タグと属性の入れ子から特定する作業が入ります。この分、基礎的な自動化よりも学習の上積みが必要になります。
ただし、ここを越えると扱えるデータの幅が一気に広がります。作例1・2が「手元にあるものを処理する」だったのに対し、こちらは「外から取ってくる」ができるようになるからです。
対象サイトの利用規約で自動取得が禁止されている場合があります。また、短い間隔で大量にアクセスすると相手のサーバーに負荷をかけます。取得の間隔を空ける、必要な回数だけにとどめるといった配慮は、技術の前に必要な作法です。練習台にするサイトは、規約を確認したうえで選んでください。
どのくらいの学習時間を見込めばいい?
気になるのは所要時間だと思います。目安として紹介されている数字を整理します。なお表の中に出てくるAPI連携とは、外部サービスがプログラムから使うために公開している窓口(API)を通じて、データを取得したり送ったりすることです。Webページの見た目から情報を拾うスクレイピングと違い、あらかじめ決められた形式でデータをやり取りできます。
| 到達したい水準 | 学習期間の目安 |
|---|---|
| ファイル整理・CSV処理などの基礎的な自動化 | 基本文法(変数・繰り返し・条件分岐・ファイル操作)の習得後、2〜3週間程度 |
| ブラウザ操作(Selenium)やAPI連携などの応用的な自動化 | 未経験から3ヶ月程度で実務レベルに到達する例も少なくない |
dotproで紹介されている目安をもとに作成
この数字は特定の教育機関や公的統計によるものではなく、学習系メディアの記事による経験的な見立てです。そのまま自分に当てはめるのではなく、自分の可処分時間で割り直して読んでください。
ここが、社会人と学生で最も差の出るところです。平日に確保できるのが30分の人と、まとまった2時間を取れる人とでは、同じ「2〜3週間」の中身がまったく違います。1日30分なら、2〜3週間はおよそ7〜10時間。この時間で作例1を1本動かすところまでを目標にするのが現実的です。まとまった時間が取れるなら、同じ2〜3週間で作例2まで進み、応用に入る足場を作れます。
- 平日30分・週末なし → 作例1に絞り、1ヶ月で1本完成を目標に
- 平日30分+週末2時間 → 2〜3週間で作例1、次の2〜3週間で作例2
- まとまった時間が取れる → 作例1・2を並行し、そのまま作例3へ
3つのうち、どれから始めればいい?
迷ったら作例1(Excel集計)からです。理由は3つあります。失敗しても自分のファイルの中で完結すること、結果が数字としてすぐ目に見えること、そして作例2の土台がそのまま作れることです。
選ぶときの基準は「かっこよさ」ではなく、自分が実際に繰り返している作業かどうかです。使わない自動化ツールは、完成しても続きません。逆に、毎週やっている面倒な作業なら、多少不格好なコードでも動いた瞬間から価値が出ます。
毎月・毎週繰り返している作業が思い当たったなら、それが最初の題材です。手元に繰り返し作業が見当たらない場合——学生の方などはこちらが多いかもしれません——サークルの名簿集計、家計の記録、講義資料のファイル名を統一する作業あたりが、規模もちょうどよく取りかかりやすい題材になります。
Webアプリやデータ分析、機械学習を目標にしている場合、自動化はやや遠回りになります。その場合は、目的地に直結する題材(簡単なWebアプリ、手元のデータの可視化)を選んだほうが早いです。また、業務で使うコードは、動いたあとに「他人が読んでも分かるか」「失敗したときにどうなるか」を考える工程が別途必要になります。まず動かすことと、業務に載せることは別の段階だと分けて考えてください。
よくある質問
Pythonで自動化を始めるのに、どの程度の文法知識が必要ですか?
変数とデータ型、for文による繰り返し、if文による条件分岐、ファイルの読み書き、そしてpipでのライブラリ追加ができれば、Excel集計の自動化には着手できます。クラスやデコレータといった発展的な文法は、最初の1本には必要ありません。
PythonでExcelを操作するには何を使いますか?
openpyxlが定番のライブラリです。.xlsx形式のファイルの読み込み・書き込み・書式設定・数式の操作まで一通り扱えます。pip install openpyxl でインストールし、ループでセルを順に読む処理から始められます。
基礎的な自動化ができるようになるまでの期間の目安は?
基本文法を習得したあと、ファイル整理やCSV処理といった基礎的な自動化なら2〜3週間程度で実装できるレベルに到達する、という目安が学習系メディアで紹介されています。ブラウザ操作や、外部サービスがプログラム向けに公開している窓口(API)を通じたデータのやり取りといった応用的な自動化は追加の学習が必要で、未経験から3ヶ月程度で実務レベルに達する例も少なくないとされています。ただしこれらは公的統計ではなく経験的な見立てのため、自分が確保できる学習時間で読み替える必要があります。
Webスクレイピングは初心者でもできますか?
requestsとBeautifulSoupを使えば技術的には可能ですが、Pythonの文法に加えてHTMLの構造を理解する必要があるため、Excel集計やメール送信よりも時間がかかります。また、対象サイトの利用規約で自動取得が禁止されている場合があり、アクセス間隔を空けるなどサーバーへの負荷に配慮する必要もあります。3つの作例の中では最後に取り組むのが順当です。
※記事で使用した内容・数値は変更される場合があります。最新情報は公式サイトをご確認ください。