【Pythonを使い倒す】リストをcsvファイルとして保存したり、csvファイルを読み込んでリストを作れるようになろう!

前回の記事では、with構文を用いて、ファイルの読み込みや書き出しを簡潔に扱えるようになる書き方を解説をしました。今回はcsvファイルを解説します。

csvファイルを作成

csvモジュールをインポートすると、Excelなどで利用可能なcsvファイルを簡単に作成したり読み込んだりすることができます。
以下の例ではcsvファイルを作成しています。

csvファイルを作成
import csv # csvモジュールをインポート

stock = [["Apple", 24], ["Banana", 14], ["Orange", 8]] # 二重のリスト

with open("stock.csv", "w", encoding="Shift_jis") as f: # 文字コードをShift_JISに指定
writer = csv.writer(f, lineterminator="\n") # writerオブジェクトの作成 改行記号で行を区切る
writer.writerows(stock) # csvファイルに書き込み
コードを見ていきましょう。
まずcsvモジュールをインポートしています。
そして、二重のリストを作ります。

リストの中に3つのリストが入っており、今回はwith構文を使ってcsvファイルを保存します。
ファイル名はstock.csvにします。
“w”で書き込みの設定にしてエンコーディングを”Shift_jis”に設定します。
csvファイルに書き込む際はこの文字コードが望ましいです。

このwith構文の中でwriterオブジェクトを作成します。
csvのwriter()メソッドにファイルのオブジェクト(f)とlineterminatorを渡してあります。
これは改行記号で行を区切るという意味になります。

そしてwriterのwriterows()メソッドで二重リストstockをcsvファイルに書き込みます。
それでは実行します。

書き込まれたcsvファイル見ていきましょう。
このようにカンマ区切りと改行でデータが格納されていますね。

csvの形式になっています。
このような形式にすればこのファイルをエクセルなどで読み込むことも可能です。

csvファイルの読み込み

また、以下の例ではcsvファイルを読み込んでいます。

csvファイルの読み込み
with open("stock.csv", "r", encoding="Shift_jis") as f:
reader = csv.reader(f) # readerオブジェクトの作成

for r in reader: # for文を用いて一行ずつ読み込む
print(r)
実行結果

[‘Apple’, ’24’] [‘Banana’, ’14’] [‘Orange’, ‘8’]

with構文を使って先ほどのファイルを読み込みます。
文字コードは同じく”Shift_jis”にします。

csvのreader()メソッドを使ってreaderオブジェクトを作成します。
そしてfor文を使って1行ずつ読み込みます。
それでは実行します。

このようにcsvファイルの各行がプリントされました。
各行はリストになっていますね。

このようにして、リストをcsvファイルとして保存したり、csvファイルを読み込んでリストにすることができます。

それでは最後にこれまでの実装手順をまとめます。

  1. 二重のリストを作り、お好きな名前でcsvファイルとして保存してみよう
  2. 保存したcsvファイルを読み込んで、内容を表示してみよう

このようにPythonではファイルを様々な形式で保存することができます。
今回はcsvファイルを解説しました。
他にも様々な形式でデータを保存することが可能ですので興味のある方は調べてみてくださいね。