![]() |
ノート/pythonでCSVを読み込むhttps://pepper.is.sci.toho-u.ac.jp:443/pepper/index.php?%A5%CE%A1%BC%A5%C8%2Fpython%A4%C7CSV%A4%F2%C6%C9%A4%DF%B9%FE%A4%E0 |
![]() |
ノート/ノート 訪問者 914 最終更新 2015-12-04 (金) 16:08:21
Python2.7でのcsvパッケージはUnicodeに対応していないので、結構厄介。
自前で、コンマ区切りをsplitとかで書いてみたけれど、最大やっかいなのは 1つの項目の中に改行が入っている場合。 この時は、データ上は" "内であっても 改行されたと思い込むので、(というか、先に" "を処理するようなことを書くのが 面倒で、やらないので) こういう場合にうまく対応できない。
そこで(かどうかしらないが)、ラッパーを書いてくれている人がいて、 このGITHUBのページ にある。このラッパーの元技術の参照先らしいのはここ。
で、具体的な手順は、 上記GITHUMから全体を手元にコピーしておいて、
python setup.py install
でインストール。
で、実際に試した利用例は、
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os import csvwrapper syllabusfname = "syllabus.csv" with csvwrapper.reader(open(syllabusfname), encoding='cp932') as reader: for row in reader: for u in row: print u, print
但し、ファイルsyllabus.csvは、コードはWindows上のまま(cp932)、まったく 内容に触らないで転送してきたもの。それをcp932のまま(pythonのcodecで) オープンしている。