Python:CSVモジュール使い方
関連記事
csvモジュールの使い方
リストデータをファイルとしてアウトプットしたい場合にcsvファイルにするのは便利。 csvモジュールの使い方をメモしておく。
csvモジュールはpythonの標準ライブラリなのでpip install csvのようなことはせずに利用することができる。
https://docs.python.org/ja/3/library/csv.html
import csv
使用例 import csv test_list = ["ロシア", "アメリカ", "中国", "ブラジル"] with open("path/test.csv", "a", encoding="utf-8") as f: writer = csv.writer(f, lineterminator="\n") writer.writerow(test_list)
csv.writer()関数を使うとwriterオブジェクトを返す。このwriterオブジェクトにはcsvファイルに書き込むためのメソッドがある。wirerow()メソッド又はwriterows()メソッドである。これらのメソッドに与えた引数がcsvファイルに書き込まれることになる。
writerオブジェクトを作成する
1行書くか複数行書くかのメソッドがある。そのメソッドを使うためのオブジェクトがwriterオブジェクト。 writerで返されるのがwriterオブジェクトである。
csv.writer(ファイルオブジェクト)
1行書く場合
writer で返されたオブジェクトにwriterowメソッドを使う。
w.writerow(シーケンス)
複数行書く場合
writer で返されたオブジェクトにwriterowsメソッドを使う。
w.writerows(シーケンス)
csvファイルの読み込み
csvファイルの一行目がカラムの説明になる場合がある。読み込みの際にこの一行目を省いて2行目以降のデータのみ読み込む方法を調べた。 https://docs.python.jp/3/library/csv.html#reader-objects http://www.bokupy.com/detail/67
import csv with open("book1.csv", "r") as f: reader = csv.reader(f) for row in reader: if reader.line_num == 1: continue print(row)
重要な点として、reader.line_numを使うことのほか、continueも重要である。continueはfor構文中にcontinueに出くわしたとき、今の現在のループを中断し、次の繰り替し処理を行う動作になる。