2017-03-06 3 views
1

CVS를 가져 와서 2D 배열에 넣는 아주 간단한 코드가 있습니다. 그것은 Python2에서 잘 실행되지만 Python3에서는 아래 오류가 발생합니다. 문서를 통해 찾고, 나는 누군가가 내 코드의 맥락에서 그것을 사용하는 방법에 대해 설명시겠습니까 .decode()를 사용할 필요가 있다고 생각 나는파이썬 3 읽기 csv UnicodeDecodeError

Error: line 21, in for row in datareader: File "/usr/lib/python3.6/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa9 in position 5002: invalid start byte

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) 
Python2에서 작업을 수행 할 필요가 없습니다 이유

답변

0
open(argv[1], encoding='ISO-8859-1') 

CSV에 기본값 인 것처럼 보이는 UTF-8이없는 문자가 포함되어 있습니다. 그러나 나는 python2가 아무 문제없이이 문제를 다뤘다는 것에 놀랐다.