Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Ошибка кодировки в Python: readline() при чтении utf-8 файла ругается: 'charmap' codec can't decode byte

Пытаюсь читать файл портов от IANA. Он сохранен в кодировке UTF-8 w/o BOM. Но на одной из строк функция readline() ругается вот таким вот образом
'charmap' codec can't decode byte 0x98 in position 7938: character maps to <"undefined">
Строка в файле выглядит следующим образом:
# Jim Harlan <"jimh&infowest.com">
Какой костыль придумать для этого? Или есть прямой путь решения?
UPD
Ибо костыль в виде удаления данной строки пойдет (причем она, почему-то вот такая одна), но только на время отладки, ибо потом вдруг что, партнеры будут рвать волосы на моей голове. Так же выложу код, которым пользуюсь для данной операции:
try: file = open(path, 'r') while True: line = file.readline() if(not line): break print(line) finally: file.close()


Ответ

попробуйте использовать встроенную библиотеку codecs: import codecs fileObj = codecs.open( "someFilePath", "r", "utf_8_sig" ) text = fileObj.read() # или читайте по строке fileObj.close()

Комментариев нет:

Отправить комментарий