Я запрограммировал скрипт в Python 3, который генерирует CSV-файл, и он отлично работает с файлом .py с консоли или с IDE Pycharm. Кодировка выходного файла верна. Мои региональные настройки являются:неправильный код кодирования csv, сгенерированный скриптом py2exe
>>> locale.getpreferredencoding()
'cp1252'
Тогда я упаковал в исполняемый файл с py2exe в Win 7. Он работает, но выходной файл CSV имеет неправильную кодировку, это закодированные с UTF-8, и символы как á é í ó ú ñ
не отображается правильно в Excel.
Код
with open('temp_gesfincas.csv', newline='') as infh, \
open('output_gesfincas.csv', 'w', encoding='cp1252', newline='') as outfh:
reader = csv.reader(infh, delimiter=';')
writer = csv.DictWriter(outfh, fields, dialect='spanish')
writer.writeheader()
row = {}
for linea in reader:
print(linea)
key = linea[0]
try:
value = linea[1]
except IndexError:
value = ''
continue
if key in row:
writer.writerow(row)
row = {}
row[key] = value
if row:
writer.writerow(row)
Вы проверили файл с помощью Notepad ++? Может быть, причиной, по которой вы не можете найти эти символы, является ошибка Excel? Раньше я сталкивался с этой ситуацией. Проверьте байты в файле с помощью шестнадцатеричного плагина Notepad ++. – Alpay
Можете ли вы показать нам фактический код, пожалуйста? Как вы открываете файл? 'open()' использует * системную кодировку по умолчанию *, если вы не укажете другой кодек. Можете ли вы также показать фактический результат, созданный в файле (желательно, открыв его как двоичный файл, а затем показывая нам 'repr()' нарушающих строк). –
'' spanish ''не является допустимым аргументом для' dialect'. –