我有一个非常简单的代码,它接收CVS并将其放入2D数组中。它在Python2上运行正常但在Python3中我得到以下错误。浏览文档,我想我需要使用 .decode()有人可以解释如何在我的代码上下文中使用它以及为什么我不需要在Python2中做任何事情
错误: 第21行,in 对于datareader中的行: 在解码中输入文件“/usr/lib/python3.6/codecs.py”,第321行 (结果,消耗)= self._buffer_decode(data,self.errors,final) UnicodeDecodeError:'utf-8'编解码器无法解码位置5002中的字节0xa9:无效的起始字节
import csv
import sys
fullTable = sys.argv[1]
datareader = csv.reader(open(fullTable, 'r'), delimiter=',')
full_table = []
for row in datareader:
full_table.append(row)
print(full_table)
答案 0 :(得分:1)
open(argv[1], encoding='ISO-8859-1')
CSV包含的字符不是UTF-8,似乎是默认值。然而,我很惊讶python2没有任何问题处理这个问题。