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"
}
PythonCSVに保存するときは 辞書 → 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("------------------------------")
Pythonmain(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 の番号を入力してください。")
Python1日目で本当に掴んでほしいこと
● CSVは「Excelで開けるテキストファイル」
Pythonで扱うと業務自動化が一気に楽になる。
● DictWriter / DictReader はCSVの最強ツール
辞書のまま保存・読み込みできる。
● 顧客データは辞書のリストで管理する
検索・編集・削除が簡単になる。
● ファイル操作は「アプリに記憶を持たせる技術」
CSVに保存することでアプリが“道具”として使えるようになる。
次のステップ(2日目の予告)
2日目では顧客管理アプリをさらに育てて、
- 顧客検索(ID・名前・メール)
- 顧客編集
- 顧客削除
- CSVの上書き・追記の違い
- データの重複チェック
という「実務レベルの顧客管理アプリ」へ進化させます。
さらに学びたい読者は CSVの基本 や ファイル操作の基礎 を選ぶと理解がより強固になります。


