csvファイルを読み込んでみる。ついでにタブ区切りのcsvファイル(csvと言わないか)を読み込んでみる。

csvファイルを用意する。test1.csvは普通(?)のcsvファイル。test2.csvはタブ区切りのファイル。

test1.csv

"hgoe",234,hogehoge
"hoge2",345,hogehoge2

test2.csv

hgoe	234	hogehoge
hoge2	345	hogehoge2

コードは、次のようになる。

#!/usr/bin/env python3
import csv

# CSVを読み込む。 (1)
with open("test1.csv") as f:
    csv_reader = csv.reader(f)
    for row in csv_reader:
        print(row)
# ['hgoe', '234', 'hogehoge']
# ['hoge2', '345', 'hogehoge2']




# 2次元配列(リストのリスト)にしてみる。 (2)
with open("test1.csv") as f:
    csv_reader = csv.reader(f)
    datas = [row for row in csv_reader]
print(datas)
# [['hgoe', '234', 'hogehoge'], ['hoge2', '345', 'hogehoge2']]

print(datas[1][2])  # 1行目の2カラム目なんで"hogehoge2"が表示される。(行目、カラム目とも0始まり)


# タブ区切りのCSV(CSVとは言わないと思う)を読んでみる
with open("test2.csv") as f:
    csv_reader = csv.reader(f, delimiter='\t')
    for row in csv_reader:
        print(row)
# ['hgoe', '234', 'hogehoge']
# ['hoge2', '345', 'hogehoge2']

  • (1)は、ファイルをオープンしてcsv.readerで1行ずつ配列にしている。
  • (2)は、2次元配列(リストのリスト)にしている。
  • (3)は、デリミタにタブを指定してタブ区切りで読み込んでいる。