Python | 1 日 90 分 × 7 日アプリ学習:ファイル・Excel・CSV自動化 CSV顧客管理編

Web APP Python
スポンサーリンク
スポンサーリンク

CSV顧客管理アプリ 1日目のゴール

1日目のテーマは 「CSVファイルを使って顧客データを登録・保存・読み込みできる最小の顧客管理アプリを作りながら、CSVの基本操作を完全に理解すること」 です。

CSVは Excel と非常に相性がよく、 Python × CSV = 業務自動化の最強コンビ と言っていいほど、実務で使われる頻度が高い技術です。

この1日目では、初心者でも迷わないように

  • CSVとは何か
  • PythonでCSVを扱う方法
  • 顧客データを登録する
  • 顧客データをCSVに保存する
  • 顧客データをCSVから読み込む
  • 顧客一覧を表示する

という流れを、例題とテンプレートを交えて丁寧に解説します。

CSVとは何か(初心者向けにかみ砕いて)

CSV(Comma Separated Values)は 「カンマで区切られた表形式のデータ」 です。

Excelで開くと普通の表として見えますが、中身はただのテキスト。

例:

id,name,email
1,田中太郎,tanaka@example.com
2,佐藤花子,sato@example.com

Pythonで扱うメリットは

  • 軽い
  • 読みやすい
  • Excelで開ける
  • 自動化しやすい という点です。

PythonでCSVを扱うためのモジュール:csv

Pythonには標準で csv モジュールがあり、 これを使うと CSVの読み書きがとても簡単 になります。

CSV顧客管理アプリ 1日目で作る機能

  • 顧客データを登録する
  • CSVファイルに保存する
  • CSVファイルから読み込む
  • 顧客一覧を表示する

これだけで「顧客管理の基礎」が完成します。

顧客データの構造を決める(最重要)

顧客データは辞書で扱うと便利です。

{
    "id": 1,
    "name": "田中太郎",
    "email": "tanaka@example.com"
}
Python

CSVに保存するときは 辞書 → CSVの行 に変換します。

CSVに顧客データを書き込む(書き込みの基本)

import csv

def save_customers(customers):
    """
    顧客データ(辞書のリスト)を CSV に保存する
    """
    with open("customers.csv", "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=["id", "name", "email"])
        writer.writeheader()  # ヘッダー行
        writer.writerows(customers)  # 複数行を書き込む
Python

深掘りポイント

  • DictWriter は辞書をそのままCSVに書ける便利な機能
  • writeheader() でヘッダー行を自動生成
  • writerows() で複数行を一気に書き込む

CSVから顧客データを読み込む(読み込みの基本)

def load_customers():
    """
    CSVから顧客データを読み込む
    """
    customers = []

    try:
        with open("customers.csv", "r", encoding="utf-8") as f:
            reader = csv.DictReader(f)
            for row in reader:
                customers.append({
                    "id": int(row["id"]),
                    "name": row["name"],
                    "email": row["email"]
                })
    except FileNotFoundError:
        pass  # 初回はファイルがないので空のまま

    return customers
Python

深掘りポイント

  • DictReader はCSVを辞書として読み込む
  • 数値は int() に変換しておくと後で扱いやすい
  • ファイルがない場合は空リストを返す(実務で必須)

顧客を登録する機能(最重要)

def add_customer():
    """
    顧客を登録する
    """
    customers = load_customers()

    new_id = len(customers) + 1
    name = input("顧客名: ")
    email = input("メールアドレス: ")

    new_customer = {
        "id": new_id,
        "name": name,
        "email": email
    }

    customers.append(new_customer)
    save_customers(customers)

    print("顧客を登録しました。")
Python

深掘りポイント

  • IDは「既存件数+1」で自動採番
  • 辞書としてまとめることで扱いやすい
  • CSV保存でデータが残る

顧客一覧を表示する機能

def show_customers():
    customers = load_customers()

    if not customers:
        print("顧客データがありません。")
        return

    print("=== 顧客一覧 ===")
    for c in customers:
        print(f"ID: {c['id']} / 名前: {c['name']} / メール: {c['email']}")
Python

メニュー(1日目版)

def show_menu():
    print("------------------------------")
    print("CSV顧客管理アプリ 1日目 メニュー")
    print("1: 顧客を登録する")
    print("2: 顧客一覧を表示する")
    print("3: 終了する")
    print("------------------------------")
Python

main(1日目完成版)

def main():
    print("Python CSV顧客管理アプリ 1日目")
    print("CSVを使った顧客管理の基礎を作ります。")

    while True:
        show_menu()
        choice = input("番号を入力してください(1〜3): ")

        if choice == "1":
            add_customer()
        elif choice == "2":
            show_customers()
        elif choice == "3":
            print("アプリを終了します。")
            break
        else:
            print("1〜3 の番号を入力してください。")
Python

1日目で本当に掴んでほしいこと

● CSVは「Excelで開けるテキストファイル」

Pythonで扱うと業務自動化が一気に楽になる。

● DictWriter / DictReader はCSVの最強ツール

辞書のまま保存・読み込みできる。

● 顧客データは辞書のリストで管理する

検索・編集・削除が簡単になる。

● ファイル操作は「アプリに記憶を持たせる技術」

CSVに保存することでアプリが“道具”として使えるようになる。

次のステップ(2日目の予告)

2日目では顧客管理アプリをさらに育てて、

  • 顧客検索(ID・名前・メール)
  • 顧客編集
  • 顧客削除
  • CSVの上書き・追記の違い
  • データの重複チェック

という「実務レベルの顧客管理アプリ」へ進化させます。

さらに学びたい読者は CSVの基本ファイル操作の基礎 を選ぶと理解がより強固になります。

タイトルとURLをコピーしました