見出し画像

Step14 ファイル操作の基礎②--CSVファイルとデータ管理の重要性

前回は、テキストファイル(.txt)の読み書きとモードについて学びましたね(*'▽')
今回は、より便利にデータを扱える CSVファイル の読み書きと、プログラムにおけるデータ管理の重要性について学んでいきましょう。


1. CSVファイルとは?

CSVは Comma Separated Values の略で、カンマ(,)で区切られたデータのことです。
表計算ソフト(ExcelやGoogleスプレッドシート)とも相性がよく、プログラムでデータを保存・読み込みするときによく使用されます。
このファイルはWindowsなどで開こうとするとよくExcelが起動して表示しようとしてくれますが、メモ帳などで表示できることも知っておくとよいでしょう。

例:scores.csv

name,math,english
Taro,80,90
Hanako,70,100
Ken,60,85

2. CSVファイルを読み込む

Pythonには、csvファイルを簡単に読み込むための 「csv モジュール」が標準で備わっており、最初に「import csv」とでも書くだけで簡単に内容を読み込むことが出来るようになります。

import csv

with open("scores.csv", "r", newline="") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

実行結果:

['name', 'math', 'english']
['Taro', '80', '90']
['Hanako', '70', '100']
['Ken', '60', '85']

このプログラムでは、txtファイルの学習で学んだように「with文」を使用し、「rモード(読み込み)」で1行ずつリストとして読みこみ、表示しようとしています。


3. CSVファイルに書き込む

import csv

data = [
    ["name", "math", "english"],
    ["Taro", 80, 90],
    ["Hanako", 70, 100],
]

with open("scores.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(data)

print("書き込み完了!")

このコードを実行すると、Pythonプログラムを保存した同じフォルダ内に、「scores.csv」 が作成され、上記の内容(data)が保存されます。


4. txtファイルとの違い


5. なぜデータ管理が大事?

  • データを再利用できる:プログラムを再実行しても同じデータを使える

  • 外部と連携できる:他のアプリ(Excel, Googleスプレッドシート)とやりとりができる

  • アプリが成長する:ユーザー情報、記録、履歴を保存して活用できる


6. ファイル操作ができると作れるアプリの例

  • 家計簿アプリ:日付・金額・カテゴリをCSVに保存

  • 学習記録アプリ:問題数や正解数を記録してあとで集計

  • 顧客管理システム:名前・住所・連絡先を管理

ファイル入出力について理解が進むと、プログラムが単なる「一度きりの動作」ではなく、データを扱う本格的なアプリ に進化していきます。


練習問題

  1. 好きな食べ物と値段のリストを作り、CSVに書き込むプログラムを書きましょう。

  2. 作成したCSVファイルを読み込んで、1行ずつ表示してみましょう。

  3. 読み込んだデータから「合計金額」を計算して表示する機能を追加してみましょう。

  4. 名前と点数を入力して、既存のCSVに追加するプログラムを書きましょう。

  5. CSVの内容をfor文で整形して、「名前: 点数」の形で出力してみましょう。


まとめ

  • CSVは「表形式のデータ」を保存するのに便利

  • csv.reader() と csv.writer() を使うと簡単に読み書きできる

  • データ管理を覚えると、プログラムが「記憶」を持つようになり、より実用的なアプリが作れる

次回は、CSVファイルを使った簡単な集計アプリや、今回の練習問題を応用したより複雑なデータ操作 に挑戦してみましょう!

次の記事


いいなと思ったら応援しよう!

DOI@日々学びの本質を考え続ける探求者 よろしければ応援お願いします! いただいたチップは引き続きプログラミングや学びについて、皆さんの利益になるようなよい記事を書くことで恩返しをさせていただきます!