6
5

More than 5 years have passed since last update.

pythonでcsvファイルを扱ってみよう

Posted at

ちょっとCSVファイルを取り扱うことがあったので調べてみました。
モジュールが用意されていて、公式ドキュメントにも使い方が載っています。
csv --- CSV ファイルの読み書き

CSVファイルとして次のような内容を想定します。

1列目 2列目 3列目
HOGE FOO BAR
1 2 3

ドキュメントの使用例通り、with openを使って開いたファイルをcsv.readerで読み込みましょう。

動作確認してません.py
import csv

with open('hoge.csv', newline='') as csvfile:
    rows = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in rows:
        print(row)
# ['\ufeffHOGE', 'FOO', 'BAR']
# ['1', '2', '3']

以上のように、行一つが配列一つに対応して出力されます。
delimiterパラメータに渡す文字を変更することで、タブ区切りのファイルなども読み込むことができます。

ところで気になるのは\ufeffという謎の文字列。当然ながら、元のCSVファイルには含まれていないものです。
これはBOMと呼ばれる「テキストの始まりをプログラムに伝える」ことを目的とする目印なんだそうですね。
以下のようにエンコードを指定するパラメータを渡してあげると、この余計な文字は読み込まれなくなります。

with open('hoge.csv', newline='', encoding='utf-8-sig') as csvfile:

参考:\ufeffって???

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5