我正在处理一些关于编码的文件中的一些问题.我们从其他公司接收文件并且必须阅读它们(文件是csv格式)
奇怪的是,这些文件似乎是用UTF-16编码的.我正在设法这样做,但我必须使用codecs模块打开它们并以这种方式指定编码.
ENCODING = 'utf-16'
with codecs.open(test_file, encoding=ENCODING) as csv_file:
# Autodetect dialect
dialect = csv.Sniffer().sniff(descriptor.read(1024))
descriptor.seek(0)
input_file = csv.reader(descriptor, dialect=dialect)
for line in input_file:
do_funny_things()
Run Code Online (Sandbox Code Playgroud)
但是,就像我能够以更加不可知的方式获得方言一样,我认为有一种方法可以自动打开具有正确编码的文件,至少是所有文本文件.还有其他程序,比如vim就可以实现这一目标.
有谁知道在python 2.6中这样做的方法?
PD:我希望这将在Python 3中解决,因为所有字符串都是Unicode ...
它不会在python 3中"修复",因为它不是一个可修复的问题.许多文档在几种编码中都有效,因此确定正确编码的唯一方法是了解文档.幸运的是,在大多数情况下,我们对文档有所了解,例如,大多数字符将聚集到不同的unicode块中.英文文档主要包含前128个代码点中的字符.俄语文档将主要包含西里尔字母代码点.大多数文档将包含空格和换行符.这些线索可用于帮助您对使用的编码进行有根据的猜测.更好的是,使用已经完成工作的人编写的库.(就像chardet在Desintegr的另一个回答中提到的那样).
| 归档时间: |
|
| 查看次数: |
16130 次 |
| 最近记录: |