@yoyoyoyoYOO

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 7: invalid continuation byte?

Загрузила для запуска бота код на pythonanywhere. В боте есть работа с текстовыми файлами и возникает проблема с этим куском кода
f = open(str(find_file), 'r')
book = f.read().split('\n')
f.close()

На консоли появляется ошибка "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 7: invalid continuation byte". Пыталась выставить для файла формат rb+, начинало ругаться на то, что я в байты перевожу, а потом со строками взаимодействовать пытаюсь...
Что сделать, чтобы работа с файлами шла спокойно и подобной ошибки не возникало?
  • Вопрос задан
  • 7409 просмотров
Решения вопроса 2
@PavelMos
open имеет параметр encoding. Если неизвестно, в какой кодировке файл, или просмотр кодировки выдает значение, на которое скрипт всё равно будет ругаться, попробуй разные варианты utf (utf16, LE...).
Ответ написан
Комментировать
@DenisShahbazyan
Так скорее всего будет работать
f = open(str(find_file), 'r', encoding='utf-8')
book = f.read().split('\n')
f.close()


но лучше пользоваться контекстным менеджером with
with open(find_file, 'r', encoding='utf-8') as file:
    book = file.read().split('\n')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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