こんにちは。
本日は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()
open
でCSVファイルをオープンしています。
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)
以上です。