Текстовый файл, закодированный в utf-8, Python дает UnicodeDecodeError, игнорировать ошибки не работает - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь прочитать "CDPQ17CEO.txt", который закодирован в utf-8, см. Это изображение: Блокнот ++ Кодировка

Вот функция read_in (в классе Letter):

class Letter(object):

def __init__(self, file_path, company_name, author_name=None, author_type = None):
   self.letter = self._read_in(file_path)
   self.company = company_name
   self.author = author_name
   self.type = author_type

def _read_in(self, file_path):
    f = open(file_path, 'r', encoding='utf-8', errors='ignore').readlines()
    f_stripped = [line.strip() for line in f]
    f.close()
    return ' '.join(f_stripped)

Вот вызов функции:

full_file = 'Q:\My Documents\OTPP\letters\CDPQ17CEO.txt'    
letter_dict[name]=px.Letter(full_file, name, author_type=author_type)

Вот ошибка:

UnicodeDecodeError: кодек 'charmap' не может декодировать байт 0x9d впозиция 1936: отображение символов на неопределенное>

Почему ошибки = «игнорировать» не выполняет свою работу?

Если я открою и преобразую текстовый документ в ANSI, повторно сохраните и повторно запуститеэто работает, но я бы предпочел не делать этого для всех документов, которые мне нужно прочитать.

Спасибо!

1 Ответ

0 голосов
/ 23 ноября 2018

Проблема и решение:

  • px Модуль, который содержал класс Letter, фактически не импортировал, хотя, как оказалось,
  • решил проблему, добавив путь к модулюПИТОНАТУ

    import sys
    sys.path.append('foo')
    
...