Пытаюсь читать файл портов от 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()
Комментариев нет:
Отправить комментарий