実用ガイド
Python自動化の実用ガイド
Python自動化:大きな自動化を組む前に、壊れにくい一作業から始める
比較と判断ガイド
| 判断項目 | 実用上の答え |
|---|---|
| 読者の悩み | 毎日同じPC作業に時間を取られている |
| 判断基準 | 入力が毎回同じならPython、画面が変わるならまず手順を固定する |
| 比較 | ファイル処理は安定しやすいが、画面操作は変更に弱く保守が増える |
| 具体的な検証 | 同じ列の週次CSVをカテゴリ別に合計し、入力を残して新しいCSVへ出す |
| 避けたい失敗 | いきなり複数サイトの画面操作を自動化して保守不能にする |
| 最初の一手 | 10分以上かかる繰り返し作業を一つ選び、入力・出力・所要時間を記録する |
| 確認する根拠 | Python公式ドキュメントで使う標準機能と制約を確認する |
| このガイドで試すこと | 比較表・CSVの具体例・最初のスクリプトチェックリスト |
購入を検討する前に、この表で最小限の検証方法を決めてください。
どの方法を選ぶか
| 方法 | 向く条件 | 負担・制約 |
|---|---|---|
| 表計算で手動集計 | 一度きりの少量データで、目視で結果を照合できる | 準備は少ない。毎週の貼り付けや範囲指定を忘れると集計がずれる |
| Pythonのcsv標準ライブラリ | categoryとamountの列が毎週同じで、処理を繰り返す | 初回に入力検査を作る。列名が変わったら停止して修正する |
| 画面クリックの自動化 | CSVを書き出す手段がなく、画面の操作だけが残る | 画面変更に弱い。この例では不要なので導入しない |
3行のCSVを、元ファイルを残してカテゴリ別に集計する
以下は架空データによる説明用の例です。顧客の実績や、時間短縮・収益の保証ではありません。
入力
category,amount
books,1200
software,600
books,800
手順
- 空の作業フォルダを作り、入力例をUTF-8のweekly.csvとして保存する。amountは0以上の整数で、全行を同じ単位にそろえる。
- 下のコードをsummarize.pyとして同じフォルダへ保存する。Python 3だけで動き、追加パッケージは使わない。
- ターミナルでそのフォルダへ移動し、python summarize.pyを実行する。Windowsでpythonがない場合は、インストール済みPythonのpy summarize.pyを使う。
- 新しくできたtotals.csvとコンソールの合計を期待結果と照合する。もう一度試すときは別の空フォルダを使う。既存のtotals.csvは上書きせず停止する。
実行するコード
import csv
from collections import defaultdict
from pathlib import Path
totals = defaultdict(int)
with Path("weekly.csv").open(encoding="utf-8-sig", newline="") as source:
reader = csv.DictReader(source)
if len(reader.fieldnames or []) != 2 or set(reader.fieldnames) != {"category", "amount"}:
raise ValueError("Expected category and amount columns")
for line, row in enumerate(reader, start=2):
if None in row or any(value is None for value in row.values()):
raise ValueError(f"Wrong column count on line {line}")
category = row["category"].strip()
raw_amount = row["amount"].strip()
if not category or category[0] in "=+-@" or not raw_amount.isascii() or not raw_amount.isdigit():
raise ValueError(f"Invalid category or non-negative integer amount on line {line}")
totals[category] += int(raw_amount)
# Exclusive creation: an existing result is never overwritten.
with Path("totals.csv").open("x", encoding="utf-8", newline="") as target:
writer = csv.writer(target)
writer.writerow(["category", "amount"])
writer.writerows(sorted(totals.items()))
print(f"{sum(totals.values())} total; {len(totals)} categories")
期待する出力
category,amount
books,2000
software,600
Console: 2600 total; 2 categories
booksは1,200+800で2,000、softwareは600、合計は2,600。入力3行が出力2行になるのはカテゴリ集計のため。列が増減した場合や負数・小数は停止する。この例の仕様に合わない値を黙って0へ置き換えない。
実作業へ使う前のチェックリスト
- 実データはコピーで試し、weekly.csvの内容が変わっていないことを確認したか
- 列名がcategoryとamountの2つで、文字コードと金額の単位をそろえたか
- 入力の合計2,600と出力の合計2,600が一致し、同じカテゴリが正しくまとまったか
- 準備・実行・結果確認・修正まで含めた時間を手動集計と比較したか
続けずに止める条件
列名や単位が毎回変わる、集計の意味を説明できない、エラーを無視しないと動かない場合は自動化を止める。先に入力側のルールをそろえる。
次に判断すること
まずは同じ形式のコピーを3回処理し、結果と手間を確かめる。このCSV集計だけが目的なら、本や有料ツールを買う必要はない。csvの詳しい使い方はPython公式文書で確認できる。英語で学べるなら、著者が無料公開している『Automate the Boring Stuff with Python』第3版の18章も選択肢になる。
日本語で文法から順に学び、CSV以外のファイル処理にも進みたいなら、『退屈なことはPythonにやらせよう 第3版』を検討できる。出版社の目次では、Pythonの基礎に加え、14章にExcel、16章にSQLite、18章にCSV・JSON・XMLを収録している。2026年8月30日の出版社表示は800ページ、税込4,620円。ISBNは9784814401529で、旧版や別の本と取り違えない。価格・形式は購入前に出版社で再確認する。
本を検討する理由は、この短い実例で不足する基礎と応用を日本語で順に学ぶため。目の前の集計が済めば十分な人や、すでに自力で修正できる人は、先に無料の資料で足りるか確かめる。紹介は公式目次と書誌情報に基づく判断材料であり、読了レビューや作業時間・収入の改善実績ではない。下の参考ソースで目次と無料の章を比べ、学びたい作業が含まれるかで選んでほしい。
この例は有料商品の購入なしで試せます。このページには商品購入リンクを掲載していません。
リンクと広告について
このガイドは商品の購入なしで試せます。商品購入リンクは掲載していません。最新の利用条件は参考ソースで確認してください。広告/PRは明示し、誇大表現や収益保証はしません。