данные в файле csv находятся в кодировке cp1251.
import csv, xlwt with open('outlets.csv') as csvfile: reader = csv.reader(csvfile, delimiter=';', quotechar='"') wbk= xlwt.Workbook() sheet = wbk.add_sheet('Sheet1') for rowi, row in enumerate(reader): for coli, value in enumerate(row): sheet.write(rowi, coli, value) wbk.save('out.xls')
На выборке из 200 записей содержащих кириллицу имею очень странное поведение:
http://prntscr.com/9fdqga
Часть строк 86-100 и 186-200 оказываются битыми.
Как не допустить этого?
На python2 такого не наблюдается:
import csv, xlwt with open('outlets.csv') as csvfile: reader = csv.reader(csvfile, delimiter=';', quotechar='"') wbk= xlwt.Workbook() sheet = wbk.add_sheet(u'Sheet1') for rowi, row in enumerate(reader): for coli, value in enumerate(row): value = value.decode('cp1251') sheet.write(rowi, coli, value) wbk.save('out.xls')
Работает нормально.
Архив с данными и исходниками