Форум сайта python.su
Никак не получается перекодировать byte переменную в str, чтобы сохранились читаемые кириллические символы. Версия Python 3.x
Вопрос простой, но всё, что можно уже попробовал. Я хочу достать текст из docx и записать его в txt, чтобы потом строки из этого txt можно было обрабатывать.
Вот так я достаю данные из docx:
docx=zipfile.ZipFile('VeryLongWordFile.docx')
content = docx.read('word/document.xml')
Теперь переменная content имеет тип byte, и если к ней применить функцию textcontent=str(content), то в итоге вместо кириллических букв получим /xb05/xb04 и тп. Если попытаться поменять кодировку textcontent, то появляется ошибка, что не все символы поддаются перекодировке.
А если использовать str(content, “cp866”), то опять возникнет ошибка, что не все символы поддаются перекодировке.
Как переменную content перевести в строку, чтобы сохранилась возможность читать русский текст?
Офлайн
есть такое слово: utf-8
Офлайн
Андрей Светловcontenttext=str(content,“utf-8”)
есть такое слово: utf-8
Офлайн
http://docs.python.org/py3k/library/functions.html#open
параметр с именем encoding как бы намекает, что нужно открыть файл как f1=open(“textutf-8.txt”,“w”, encoding='utf-8')
Офлайн
Спасибо! Это помогло
Офлайн