Найти - Пользователи
Полная версия: Перекодировка byte переменной
Начало » Python для новичков » Перекодировка byte переменной
1
Sirorezka
Никак не получается перекодировать 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
Sirorezka
Андрей Светлов
есть такое слово: utf-8
contenttext=str(content,“utf-8”)

f1=open(“textutf-8.txt”,“w”)
f1.write (contenttext)
f1.close

Тогда как раз то, о чём я говорю - возникает ошибка записи в файл: “'charmap' codec can't encode characters in position…”
Андрей Светлов
http://docs.python.org/py3k/library/functions.html#open
параметр с именем encoding как бы намекает, что нужно открыть файл как f1=open(“textutf-8.txt”,“w”, encoding='utf-8')
Sirorezka
Спасибо! Это помогло
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