我的代码:
import csv
def handle_uploaded_file(f):
dataReader = csv.reader(f, delimiter=';', quotechar='"')
for row in dataReader:
do_sth
问题是只有当csv是UTF-8编码时它才能正常工作。我应该更改什么来提供iso-8859-2或windows-1250编码? (最好的解决方案是自动识别编码,但手动转换也是可以接受的)
答案 0 :(得分:4)
现在的解决方案:
def reencode(file):
for line in file:
yield line.decode('windows-1250').encode('utf-8')
csv_reader = csv.reader(reencode(open(filepath)), delimiter=";",quotechar='"')
答案 1 :(得分:2)
看看the examples section of the csv module documentation。最后,您将找到可用于此目的的类,并指定编码。
答案 2 :(得分:1)
传递用codecs.open打开的文件描述符。你不能自动识别编码,或者不能很好。要猜测编码,您可以使用chardet。