Чтение Python из файла и сохранение в utf-8
196785 просмотра
3 ответа
У меня проблемы с чтением из файла, обработкой его строки и сохранением в файл UTF-8.
Вот код:
try:
filehandle = open(filename,"r")
except:
print("Could not open file " + filename)
quit()
text = filehandle.read()
filehandle.close()
Затем я делаю некоторую обработку текста переменной.
А потом
try:
writer = open(output,"w")
except:
print("Could not open file " + output)
quit()
#data = text.decode("iso 8859-15")
#writer.write(data.encode("UTF-8"))
writer.write(text)
writer.close()
Это выводит файл отлично, но это делает в ISO 8859-15 в соответствии с моим редактором. Поскольку тот же редактор распознает входной файл (в переменной filename) как UTF-8, я не знаю, почему это произошло. Насколько мой исследователь показал, что закомментированные строки должны решить проблему. Однако, когда я использую эти строки, результирующий файл имеет в основном специальную символическую тарабарщину, слова с тильдой в качестве текста на испанском. Я был бы очень признателен за любую помощь, как я в тупике ....
Автор: aarelovich Источник Размещён: 13.11.2019 11:52Ответы (3)
161 плюса
Обработайте текст в и из Unicode на границах ввода / вывода вашей программы, используя codecs
модуль:
import codecs
with codecs.open(filename, 'r', encoding='utf8') as f:
text = f.read()
# process Unicode text
with codecs.open(filename, 'w', encoding='utf8') as f:
f.write(text)
Edit:io
Теперь модуль рекомендуется вместо кодеков и совместим с Python 3 в open
синтаксисе:
import io
with io.open(filename, 'r', encoding='utf8') as f:
text = f.read()
# process Unicode text
with io.open(filename, 'w', encoding='utf8') as f:
f.write(text)
Автор: Mark Tolonen
Размещён: 25.10.2013 01:55
7 плюса
Вы также можете пройти через код ниже:
file=open(completefilepath,'r',encoding='utf8',errors="ignore")
file.read()
Автор: Siva Kumar
Размещён: 27.07.2017 06:34
4 плюса
Вы не можете сделать это, используя open. использовать кодеки.
когда вы открываете файл в python с помощью встроенной функции open, вы всегда будете читать / записывать файл в ascii. Чтобы написать это в utf-8, попробуйте это:
import codecs
file = codecs.open('data.txt','w','utf-8')
Автор: Fernando Freitas Alves
Размещён: 25.10.2013 01:52
Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- python Вызов функции модуля с использованием его имени (строки)
- python Звук Питона («Колокол»)
- python-2.7 Как получить десятичное значение при использовании оператора деления в Python?
- python-2.7 Самый чистый способ получить последний элемент из итератора Python
- python-2.7 Перебор словарей с использованием циклов for
- python-2.7 Как удалить Python 2.7 на Mac OS X 10.6.4?
- python-2.7 Python - домашнее задание - преобразование любой базы в любую базу
- python-2.7 Каков результат% в Python?
- utf-8 Как проверить, является ли файл действительным UTF-8?
- utf-8 Как заставить UTF-8 работать в веб-приложениях Java?
- utf-8 Как заставить MySQL правильно обрабатывать UTF-8
- utf-8 Как заменить ударные латинские буквы в Ruby?
- utf-8 Преобразование UTF-16 в UTF-8 (для сценариев в Windows)
- utf-8 UTF-8 полностью