@alenov
Программист

Как в Python 3.5 обойти ошибку «ascii codec can`t decode...» при чтении из файла?

История такая.
Вот фрагмент кода:
with open(filename, 'r') as f:
            lines = f.read().split('\n')

Когда код выполняется в среде разработки, проблем не возникает. Когда он упакован в docker, возникает ошибка в f.read().split('\n')
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 18: ordinal not in range(128)

Как это обойти?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 2
@AlexPyth
Разработчик ПО
Попробуйте в вызове функции open добавить аргумент "encoding" со значением "utf-8".
open(filename, 'r', encoding='utf-8')
Ответ написан
@alenov Автор вопроса
Программист
Разобрался. Нужно было явно указать кодировку файла:
with open(filename, 'r', encoding="utf-8") as f:
Непонятно, почему в среде разработки это не имело значения...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы