なんだかGoodVibes

日々の勉強メモです。

【Python】csvファイルの読み込み(csvモジュール)

こんにちは。
本日はPythonメモです。

概要

csvモジュールを使用して
csvファイルの読み込みを行います。

今回のサンプルでは事前に用意した
以下のcsvファイルを読み込みます。

9/1,111,aaa
9/2,222,bbb
9/3,333,ccc


サンプルコード

リストに変換して一度に読み込む方法
import csv

f = open('sample.csv')
r = csv.reader(f)
d = list(r)
print(d)
f.close()

openCSVファイルをオープンしています。

opneで取得したファイルオブジェクトを
csv.readerに渡してReaderオブジェクトを取得しています。

実行結果は以下のようになります。

[['9/1', '111', 'aaa'], ['9/2', '222', 'bbb'], ['9/3', '333', 'ccc']]

リストに変換しているので以下のようなアクセスも可能です。

print(d[0][1])
print(d[1][1])
print(d[2][1])

実行結果は以下のようになります。

111
222
333


forを使用して一行ずつ読み込む方法
import csv

f = open('sample.csv')
r = csv.reader(f)
for row in r:
    print('[' + str(r.line_num) + '] ' + str(row))
f.close()

先程とほとんど同じですが、
今回はリストへの変換を行わないで
Readerオブジェクトをforでループしています。

実行結果は以下です。

[1] ['9/1', '111', 'aaa']
[2] ['9/2', '222', 'bbb']
[3] ['9/3', '333', 'ccc']


withを使用した読み込み

withを使用することでcloseの呼び出しが不要になります。
withを使用した方法でサンプルコードを書くと
以下のようになります。

import csv

with open('sample.csv') as f:
    r = csv.reader(f)
    data = list(r)
    print(data)



以上です。