CSVファイルを扱う

0

Pythonに付いてくる組み込みモジュールを使えばCSVファイルも扱える

import csv

with open("st.csv", "w", newline=") as f:
     w = csv.writer(f, delimiter=",")
     w.writerow(["one", "two", "threww"])
     w.write.row(["four", "five", "six"])

#このプログラムは新しくst.csvを作る

csvモジュールを使うと読み込みもできる。csvファイルを読み込むためにopen関数の第2引数(モード)に”r”を指定する。そしてwith分の内側でcsv.readerメソッドにファイルオブジェクトとデリミタとしてカンマを指定して呼び出す

関数からの返値としてcsvを一行単位で扱えるイテラブルが返される。

イテラブルとは繰り返し可能なオブジェクトのことでリストやタプルやrange関数で作成したオブジェクトのことです。 for文でイテラブルなオブジェクトを繰り返し処理してみましょう。

#ここで開くファイルは、
#前のコードを実行して
#作られます。

import csv

with open("st.csv", "r") as f:
     r = csv.reader(f, delimiter=",")
     for row in r:
         print(",".join(row))

>>one,two.three
>>four,five,six

この例ではst.csvファイルを開いて csv.readerメソッドでcsvオブジェクトに変換して読み込みます。csvオブジェクトをforループで繰り返します。ループごとに取り出されたrowの要素をカンマで結合して出力。これでファイルに書かれて李コンテンツと同じように、カンマで区切られた文字列を再現できた。

用語集

with文 複合文の一つで処理がwithブロックを抜けたとき自動的に指定した処理を実行する。

デリミタ 区切り文字、delimiter。CSVファイルのデータを区切るために使われる記号。