0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】CSVファイルの基本:読み書きの基本操作

Posted at

PythonでCSVファイルを扱う方法を学んだので、記録としてまとめておきます。
この回では、csv.reader()csv.writer() を使って、CSVファイルを行単位で読み書きする基本を確認しています。

csvモジュールを使う準備

Pythonでは標準ライブラリの csv モジュールを使ってCSVファイルを扱うことができます。

import csv

追加のインストールなどは必要ありません。

CSVファイルの読み込み(csv.reader)

まず、次のようなCSVファイルを用意しておきます。

# sample.csv の内容
name,age,city
Alice,30,New York
Bob,25,Los Angeles

このファイルを読み込むコードは次のとおりです。

import csv

with open("sample.csv", newline="") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)
['name', 'age', 'city']
['Alice', '30', 'New York']
['Bob', '25', 'Los Angeles']

各行がリストとして出力されることがわかります。

CSVファイルへの書き込み(csv.writer)

リストを使ってCSVファイルにデータを書き出す方法です。

import csv

rows = [
    ["name", "age", "city"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "Los Angeles"]
]

with open("output.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(rows)
# 出力される output.csv の内容
name,age,city
Alice,30,New York
Bob,25,Los Angeles

writerows() を使うと、リストのリスト(2次元配列のようなもの)をまとめて書き込むことができます。

注意点まとめ

よくあること 対応策
改行が2行ずつになる newline="" をファイルを開くときに指定する
日本語が文字化けする encoding="utf-8" をファイルを開くときに指定する
数値が文字列になる CSVはすべて文字列として扱われるので、自分で変換が必要

ファイルを開くときの指定方法(例)

# 改行対策と文字化け対策を両方指定する場合
with open("sample.csv", newline="", encoding="utf-8") as f:
    reader = csv.reader(f)

どちらも open() 関数の引数に渡します。

まとめ

  • csv.reader() を使うとCSVをリスト形式で読み込める
  • csv.writer() を使ってリストをCSVに書き出せる
  • newline=""encoding="utf-8" の指定がトラブル回避に重要
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?