こんにちは!
皆さんはCSVファイルからデータを読み込んだり、 CSVファイルへデータを書き込みたいと思ったことはありますか?
CSVファイルはエクセルなどでも開くことができたり、よく使われているデータ形式なので、プログラミングを勉強している人なら触れたことがあるデータ形式ではないかと思います。
今回はPythonでCSVファイルを読み書きする方法として、以下の2つの方法を紹介します。
- with文を用いる方法
- with文を用いない方法
CSVファイルの読み込み
CSVファイルの読み込みには、「csvモジュール」を使用します。
csvモジュールはPythonの標準ライブラリなので、インストールの必要はありません。
今回はCSVファイルの読み込み・書き込み方法を、with文を用いる方法、with文を用いない方法の2通り紹介します。
with文については、以下の記事を参考にしましょう。
こんにちは! 皆さんは「with文」というものをご存知ですか? with文は、with文を用いなくても他の書き方で書けるため、知っていても使い方は理解していない、といった方もいるかと思います。 with文はファイルのオー[…]
with文を用いる方法
以下のプログラムは、with文を用いた、CSVファイルを読み込むプログラムです。
import csv
data1 = 'file1.csv'
with open(data1, 'r') as f:
reader = csv.reader(f)
header = next(reader) # ヘッダーを読み飛ばす場合
for row in reader:
print(row)
実行結果(file1.csvに下記のデータが入っている場合)
['160', '60']
['170', '70']
with文を用いない方法
次のプログラムは、with文を用いない、CSVファイルを読み込むプログラムをです。
import csv
data1 = 'file1.csv'
f = open(data1, "r")
reader = csv.reader(f)
header = next(reader) # ヘッダーを読み飛ばす場合
for row in reader:
print(row)
f.close()
実行結果(file1.csvに下記のデータが入っている場合)
['160', '60']
['170', '70']
1.1のwith文を用いる場合との大きな違いがわかりますか?
そうです!最後に「f.close()」によってファイルを閉じる必要があります。
忘れないように注意してください。忘れん坊の方はwith文を用いるようにした方が良いかもしれませんねw
CSVファイルへの書き込み
CSVファイルへの書き込みも、「csvモジュール」を使用します。
with文を用いる方法
次のプログラムは、with文を用いた、CSVファイルへの書き込みを行うプログラムです。
import csv
data2 = 'file2.csv'
header = ['身長', '体重']
data = [[160, 60], [170, 70]] # 2次元配列
with open(data2, 'w') as f:
writer = csv.writer(f, lineterminator='\n')
writer.writerow(header)
writer.writerows(data)
with文を用いない方法
次のプログラムは、with文を用いない、CSVファイルへの書き込みを行うプログラムです。
import csv
data2 = 'file2.csv'
header = ['身長', '体重']
data = [[160, 60], [170, 70]] # 2次元配列
f = open(data2, 'w')
writer = csv.writer(f, lineterminator='\n')
writer.writerow(header)
writer.writerows(data)
f.close()
作成されたfile2.csv(例)
これで現在のディレクトリにCSVファイルが作成されます。既に存在する場合は更新されます。
CSVファイルの読み込みの場合と同様に、with文を用いる場合は、f.close() でファイルを閉じるのを忘れないように注意してください。
まとめ
今回はPythonでCSVファイルを読み書きする方法について紹介しました。
- with文を用いる方法
→ファイルを閉じる記述の必要なし - with文を用いない方法
→ファイルを閉じる記述の必要あり
CSVファイルは、データ処理などでよく使われるデータ形式です。Pythonで多く実装される機械学習などでもよく使われるため、Pythonを使用する上で、押さえておくべき方法です。
しっかりとCSVファイルを読み書きする方法を押さえておきましょう!