2024-10-04 07:27:45 发布
网友
我有一个csv文件保存为UTF-8编码。在
它包含非ascii字符[umlauts]。在
我正在使用以下方法读取文件:
csv.DictReader(<file>,delimiter=<delimiter>).
我的问题是:
我注意到,为了将字符串称为utf-8,我需要执行以下操作:
有没有比以一种编码方式读取文件然后转换成另一种编码方式(即utf-8)更好的方法吗?
utf-8
[Python版本:2.7]
如何使用实例和类来实现这一点?在
您可以在类级别存储共享字典,也可以让它加载Unicode文本文件,甚至检测它们的编码,无论是否使用BOM文件掩码。在
很久以前,我写了一个简单的库,它用一个支持Unicode的库覆盖默认的open()。在
open()
如果您这样做^{},您也可以更改csv库加载文件的方式。在
如果您的文件没有BOM头,库将采用UTF-8,而不是旧的ascii。如果需要,甚至可以指定另一个回退编码。在
ascii
在Python2.7中,CSV模块不应用任何解码-它以二进制模式打开文件并返回字节字符串。在
使用https://github.com/jdunck/python-unicodecsv,它可以动态解码。在
使用方式如下:
with open("myfile.csv", 'rb') as my_file: r = unicodecsv.DictReader(my_file, encoding='utf-8')
r将包含unicode的dict。源文件以binary模式打开非常重要。在
r
binary
如何使用实例和类来实现这一点?在
您可以在类级别存储共享字典,也可以让它加载Unicode文本文件,甚至检测它们的编码,无论是否使用BOM文件掩码。在
很久以前,我写了一个简单的库,它用一个支持Unicode的库覆盖默认的
open()
。在如果您这样做^{} ,您也可以更改csv库加载文件的方式。在
如果您的文件没有BOM头,库将采用UTF-8,而不是旧的
ascii
。如果需要,甚至可以指定另一个回退编码。在在Python2.7中,CSV模块不应用任何解码-它以二进制模式打开文件并返回字节字符串。在
使用https://github.com/jdunck/python-unicodecsv,它可以动态解码。在
使用方式如下:
r
将包含unicode的dict。源文件以binary
模式打开非常重要。在相关问题 更多 >
编程相关推荐