傀儡師の館.Python

傀儡師の館.Python

PR

×

Calendar

Keyword Search

▼キーワード検索

Archives

2026.05
2026.04
2026.03
2026.02
2026.01
2025.12
2025.11
2025.10
2025.09
2025.08

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
2013.01.29
XML
カテゴリ: Python
いつの間にか100万アクセスを突破していた。民主党政権が終わるか、100万アクセスを突破したら、また再開しようかなと思っていたので、また、頻繁に書こうかなということで、リハビリから始めることにした。

とりあえず、どうでもいいことを書きながら、書く習慣を取り戻すってところからで。

unicodecsv 0.9.4 を見てみる。



おい、おい、まだ Python2 なのかって、このところ、Python でプログラム書かなかったから、Python 2 でストップしたままなのであった。

というのはさておき、本題の unicodecsv。

python2 の csv モジュールは、UTF-8 を使う分には、問題ないのだけれど、Unicode だとエラーになる。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv

from cStringIO import StringIO
f = StringIO()
w = csv.writer(f)
w.writerow(('日本語', 'どうでしょう'))
f.seek(0)
r = csv.reader(f)
row = r.next()
print row[0], row[1]


w.writerow(('日本語', 'どうでしょう')) の行を
w.writerow((u'日本語', u'どうでしょう')) だとエラーになる。まぁ、あたりまえの話だけれど。UTF-8 ではなく、ユニコードを直接扱いたいというのであれば、unicodecsv を使えばよい。

pip install unicodecsv でインストールしておいて、

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import unicodecsv
from cStringIO import StringIO
f = StringIO()
w = unicodecsv.writer(f, encoding='utf-8')
w.writerow((u'日本語', u'どうでしょう'))
f.seek(0)
r = unicodecsv.reader(f, encoding='utf-8')
row = r.next()
print row[0], row[1]


Unicode の CSV データ (Unicode 文字列のリスト)を扱うための csv.reader をラップするジェネレータ(generator)をunicode_csv_reader() のように 書いてやればちゃんと扱えるでしょって、いちいちそういうコードを入れなくてよいから楽にユニコードのcsvデータを扱えるよって話なのでした。




無料アクセス解析






お気に入りの記事を「いいね!」で応援しよう

Last updated  2013.01.30 04:47:42
コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: