我有一个巨大的utf8编码csv文件,但一些编码与主文件编码不同的列。它看起来像:Python3 CSV阅读器Unicode解码错误
input.txt中在UTF-8编码:
a,b,c
d,"e?",f
g,h,"kü"
相同input.txt中在Win-1252
a,b,c
d,"eü",f
g,h,"kü
代码:
import csv
file = open("input.txt",encoding="...")
c = csv.reader(file, delimiter=';', quotechar='"')
for itm in c:
print(itm)
和standart python3 csv阅读器属tes在这样的行上编码错误。我不能忽略阅读这一行,但我只需要总是好的编码“someOther”列。
是否可以使用standart csv阅读器在某些“字节模式”下以某种方式拆分CSV数据,然后将每个数组元素转换为普通的python unicode字符串,还是应该实现自己的csv阅读器?
回溯:
Traceback (most recent call last):
File "C:\Development\t.py", line 7, in <module>
for itm in c:
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 11: invalid start byte
我认为'encoding =“...”'会导致问题。 –
它的伪代码,我只想提到utf-8或ascii或某些特殊编码都不起作用。 – Oleg
错误究竟是什么?你可以发布回溯?是CSV阅读器中的错误,还是当您尝试打印该行时? – mhawke