2017-03-06 98 views
1

我有一個非常簡單的代碼,需要一個CVS並將其放入二維數組中。它在Python2上運行良好,但在Python3中,我得到下面的錯誤。翻翻文件,我想我需要使用.decode()可能有人請解釋如何在我的代碼的情況下使用它,所以我不需要Python2python 3 read 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) 
做任何事

回答

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

CSV包含字符,其中不是UTF-8,它似乎是默認值。然而,我很驚訝python2沒有任何問題地處理這個問題。