Python CSV を読み込む

http://www.lifewithpython.com/2015/11/python-read-csv-encoded.html

 

Python Tips:特定の文字コードの CSV ファイルを読み込みたい

 

今回は Python で特定の文字コードの CSV をデコードしながら読み込む方法をご紹介したいと思います。

 

標準ライブラリの csv を使う場合は、セル単位に切り離したときに decode するとよいかと思います。ファイル名と文字コードを指定すると内容を抽出してくれるヘルパー関数を書いてみます。

 

import csv

 

def csv_read(filename, encoding):

    """CSV ファイルを文字コードを指定して読み込む

    """

    with open(filename, "rb") as f:

        csvfile = csv.reader(f)

        rows = [[c.decode(encoding) for c in r] for r in csvfile]

        return rows

 

 

if __name__ == "__main__":

    # 確認

    csv_filename = "target.csv"

    encoding = 'sjis'

    csv_rows = csv_read(csv_filename, encoding)

 

ファイルサイズがものすごく大きな場合などにはそれなりの工夫が必要かと思いますが、通常のサイズの CSV ならこれで十分かと思います。

 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です