pythonの標準ライブラリを知る ~csv~
1.csv.writer()
ファイルオブジェクトを渡すと、それに基づいたcsv.writerオブジェクトを返してくれる。dialectは表現形式の指定なので省略可。**fmtparamsは各種オプションで、lineterminator="\n"とするとWindowsでの余計な空行が入ることを防止できる。
2.csv.writer.writerow(row)
1次元配列を渡してwriterオブジェクトに書き込む。
3.csv.writer.writerows(rows)
2次元配列を渡してwriterオブジェクトに書き込む。
import csv header = ["a", "b", "c"] data = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] with open("normal.csv", mode="w", encoding="utf-8") as f: writer = csv.writer(f, lineterminator="\n") writer.writerow(header) writer.writerows(data)
以下のようなcsvファイルが作成された。
a,b,c 1,2,3 4,5,6 7,8,9
4.csv.reader(csvfile, dialect="excel", **fmtparams)
fileオブジェクトを渡すと、それに基づいたcsv.readerオブジェクトが返される。
読み込みは、open関数でcsvfileオブジェクトを取得し、csv.reader()にfileオブジェクトを渡し、readerオブジェクトを取得する。その後はreaderオブジェクトをループにかけて、行ごとのデータを取得する。
import csv with open("normal.csv", mode="r", encoding="utf-8") as f: reader = csv.reader(f) [print(row) for row in reader]
['a', 'b', 'c'] ['1', '2', '3'] ['4', '5', '6'] ['7', '8', '9']