Чтение файлов в Python 3.5, созданных в Python 2.7 - PullRequest
0 голосов
/ 04 апреля 2019

Я запустил некоторый сценарий в Python 2.7, который сгенерировал файл, и когда я попытался открыть его, я обнаружил следующую ошибку:

UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xc0 в позиции 2623: порядковый номер не в диапазоне (128)

Любая подсказка о том, как открыть его в Python 3.5?

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Вы можете указать кодировку при открытии файла:

 with open(myfile, encoding='utf-8) as f:
     pass
1 голос
/ 04 апреля 2019

Ваш файл в utf-8 (вероятно).Кодек ASCII не может декодировать текст Unicode.

Вы должны использовать правильный кодек.Функция file.read() возвращает байтовоподобный объект.Вы можете превратить это в строку так:

contents = str(file.read(), 'utf-8')
...