как мне прочитать .data файл на python

Рейтинг: -1Ответов: 1Опубликовано: 18.07.2023
file = open("D:\\загрезки\\Skill.data", "r")
file.read()
file.close()

при запуске этого кода выводит такое сообщение в консоли:UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1804: character maps to . Как решить это?

Ответы

▲ 3

Это происходит потому что читая данные из файла он автоматически пытается преобразовать его в текст, что может вызвать ошибки когда .data файл содержит явно не только текст, но и ещё различные данные. Есть три выхода:

  1. Чтение в виде байтов

    Вы можете прочитать файл в виде байтов никак их не интерпретируя, тем самым ошибок в процессе интерпретации байтов как текста не будет.

    file = open("path", 'rb')
    print(file.read())
    file.close()
    
  2. Игнорирование ошибок

    Вы можете в процессе интерпретации игнорировать ошибки. Тем самым у вас получится строка которая, будет содержать вероятно месиво из символов.

    file = open("path", 'r', errors='ignore')
    print(file.read())
    file.close()
    

    P.s - у параметра error есть и другие значения помимо игнор, почитать о них вы можете тут.

  3. Установка нужной кодировки

    Если же вы всё же уверены что в .data файле содержится именно строка и ничто иное, вы можете попробовать установить другую кодировку. Какую именно - узнавать вам.

    file = open("path", 'r', encoding='ascii')
    print(file.read())
    file.close()