Pythonとエンコーディング
-
付与されたタグ:
- Python
めんどくさいと思っていたことがPython3で解決。
import csv
import codecs
for i in csv.reader(codecs.open("foo.csv", "r", "cp932")): print(i)
このスクリプトをPython2で実行するとUnicodeEncodeErrorが出る。csv.reader()にunicodeを入れると駄目ということのようだ。codecs.openでなくて普通のfileで開くとエラーは出ないがShift JISでエンコードされたstrを意識して処理しないといけないのが面倒。
そこでPython3で実行すると問題なく通る。エンコーディング回りのPython2のつぎはぎ実装の悩みがあっさり解決するのはうれしい。