[[ノート/ノート]]
訪問者 &counter();    最終更新 &lastmod();

**Python2.7でCSVを読み込む [#z7f70924]

Python2.7でのcsvパッケージはUnicodeに対応していないので、結構厄介。

自前で、コンマ区切りをsplitとかで書いてみたけれど、最大やっかいなのは
1つの項目の中に改行が入っている場合。 この時は、データ上は" "内であっても
改行されたと思い込むので、(というか、先に" "を処理するようなことを書くのが
面倒で、やらないので) こういう場合にうまく対応できない。

そこで(かどうかしらないが)、ラッパーを書いてくれている人がいて、
[[このGITHUBのページ:https://github.com/draftcode/csvwrapper]]
にある。このラッパーの元技術の参照先らしいのは[[ここ:http://docs.python.jp/2/library/csv.html#csv-examples]]。

で、具体的な手順は、
上記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

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で)
オープンしている。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS