Python で csv ファイルを扱う方法をご紹介します。
csv ファイルを扱うには標準ライブラリの csv
が便利です。
import csv
csv
を使うときのおおまかな流れは次のとおりです。
- ファイルオブジェクトを開く
- ファイルオブジェクトを
csv.reader()
かcsv.writer()
に渡す - 生成されたcsvオブジェクトのメソッドを使う
- ファイルオブジェクトを閉じる
csv ファイルの読み込みは次のように書けます。
import csv
with open(FILENAME, 'r') as f:
reader = csv.reader(f)
for row in reader:
print row
ここで各 row
は list
です。 list
の各要素は文字列です。数値として扱いたいときなどは読み込み後に変換します。
for row in reader:
num_row = map(float, row) # 各要素を float に変換
print num_row
先頭行がヘッダー行になっているかどうかを調べたいときは csv.Sniffer
クラスの has_header()
メソッドにファイルの中身を渡すこととある程度自動判定してくれます。
hasHeader = csv.Sniffer().has_header(f.read(100))
if hasHeader: # header行があるかどうか True/False
print "%s has a header" % FILE
f.seek(0) # 先頭に戻る
書き込みの方法や区切り文字の指定方法などについては別記事 csvライブラリ にも書いたので、よろしければそちらもご覧ください。