Найти - Пользователи
Полная версия: Ошибка при записи в файл. Нужна помощь...
Начало » Python для новичков » Ошибка при записи в файл. Нужна помощь...
1
notfedor
при записи списка в файл, используя вот такой код:
f.write("\n".join([str(i) for i in mlist]))
Вылетает вот такая ошибка:
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 47-82: ordinal not in range(128)

В чем проблема? Как лечить?
Спасибо.
lavrton
В какой кодировке строка? Что является элементом списка? Использовать примерно следующее, если элементы в юникоде:
i.encode('utf8')
#или
str(i).encode('utf8')
notfedor
не помогло…
для перекодирования использую вот такой код(спасибо pyuser)
def _decode_header(msg):
header = {"from": None, "to": None, "subject": None}
for h in header:
txt, enc = decode_header(msg[h])[0]
header[h] = txt.decode(enc) if enc else txt
frm=header
sbj=header
return header,frm,sbj

...

#вот сама строка
mlist.append(';;'+_decode_header(msg)[1]['from']+'::'+_decode_header(msg)[2]['subject']+'::'+uidl+';;'+'\n')
py.user.next
сначала выведи на экран то, что выводишь в файл
там может находится не то, что ты думаешь
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB