不可逆な毎日ブログ

2度と過ごすことのない毎日をつらつらと・・・

CSVでEUCのファイルの扱い

何度も何度も、はまっているので。
9.1 csv -- CSV ファイルの読み書き

注意: このバージョンの csv モジュールは Unicode 入力をサポート していません。また、現在のところ、 ASCII NUL 文字に関連したいくつかの 問題があります。従って、安全を期すには、全ての入力を UTF-8 または印字可能な ASCII にしなければなりません。これについては9.1.5節の 例を参照してください。これらの制限は将来取り去られることになっています。

ここに、書いてあるように、そのままでは ascii なんとかとエラーになってしまう。

そこで、9.1.5 節を見てみる。
9.1.5 使用例
ここにある、ジェネレータが使えそうだ。

    def utf_8_encoder(self, unicode_csv_data):
      for line in unicode_csv_data:
        yield line.encode('utf-8')

これを間にいれると…。
うまくいきました。