Python 2.6中对csv文件的常规Unicode / UTF-8支持

当涉及UTF-8 / Unicode时,Python中的csv模块无法正常工作。我在Python文档和其他网页中发现了适用于特定情况的代码段,但是您必须清楚地了解要处理的编码并使用适当的代码段。

如何在Python 2.6中“正常工作”的.csv文件中读写字符串和Unicode字符串?还是这是没有简单解决方案的Python 2.6的局限性?


慕尼黑的夜晚无繁华
浏览 485回答 3
3回答

米琪卡哇伊

此处提供的模块看起来像是csv模块的酷炫,简单,直接的替代品,使您可以使用utf-8 csv。import ucsv as csvwith open('some.csv', 'rb') as f:    reader = csv.reader(f)    for row in reader:        print row

翻翻过去那场雪

该文档中已经有Unicode示例的用法,为什么还需要寻找另一个示例或重新发明轮子呢?import csvdef unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):    # csv.py doesn't do Unicode; encode temporarily as UTF-8:    csv_reader = csv.reader(utf_8_encoder(unicode_csv_data),                            dialect=dialect, **kwargs)    for row in csv_reader:        # decode UTF-8 back to Unicode, cell by cell:        yield [unicode(cell, 'utf-8') for cell in row]def utf_8_encoder(unicode_csv_data):    for line in unicode_csv_data:        yield line.encode('utf-8')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python