Python3の基礎 ファイル(CSV)を読み込む編
Python3でCSVを読み込んでみます
以前python2でCSVの読み込みを扱いました。
peaceandhilightandpython.hatenablog.com
Pyton2と3では、やり方が少し違うようですので、メモっておきます
importするのは2と同じcsv
import csv #python2も3もここは同じです for ......
このCSVを読んでみます
data.csv #今回のCSVの中身 カンマで区切ったデータです。 1,11,111,1111,11111 2,22,222,2222,22222 3,33,333,3333,33333 4,44,444,4444,44444
2と3のちがい
2のときの書き方
f = open('data.csv', 'rb') dataReader = csv.reader(f) for row in dataReader: print row
3の書き方
import csv with open('data.csv', newline='') as f: dataReader = csv.reader(f) for row in dataReader: print(row)
結果は同じ
#実行結果 ['1','11','111','1111','11111'] ['2','22','222','2222','22222'] ['3','33','333','3333','33333'] ['4','44','444','4444','44444']
openの行が少し変わっています。
公式ページの解説 14.1. csv — CSV ファイルの読み書き
一応解説があります。newlineって何なんでしょ?
与えられた csvfile 内の行を反復処理するような reader オブジェクトを返します。 csvfile はイテレータ(iterator)プロトコルをサポートし、 next() メソッドが呼ばれた際に常に文字列を返すような任意のオブジェクトにすることができます — ファイルオブジェクトでもリストでも構いません。 csvfile がファイルオブジェクトの場合、 newline=‘’ として開くべきです。
えー、つまりファイルを開くときにはこのnewline=‘'を書いてねってことだと思われます。 じゃあそれ以外の時は?という疑問にたどり着きますね。 例えばファイルではない形式で、csvが来た時とか。 すみません、今はわかんないので、また調べなおして出直します。。。。
ということで、CSVを読み込む編でした。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る