Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как бороться с ошибкой при чтении из файла? Я уже пробовал ставить разные кодировки

Степан Шустов Знаток (329), на голосовании 1 год назад
Я уже пробовал ставить разные кодировки

import sys

sys.stdin = open('out.txt', 'r')
sys.stdout = open('out2.txt', 'w')
st = '3'
while st:
st = input()
print(st)


Traceback (most recent call last):
File "Путь к файлу\main.py", line 7, in <module>
st = input()
^^^^^^^
File "Путь к питону\Python\Python311\Lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 3894: character maps to <undefined>
Голосование за лучший ответ
Татьяна Просветленный (36704) 1 год назад
Ошибка "UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 3894: character maps to <undefined>" возникает, когда программа пытается декодировать символ, который не может быть представлен в текущей кодировке. Это может произойти, если файл был записан в другой кодировке, отличной от используемой в программе.
Чтобы решить эту проблему, можно попробовать указать правильную кодировку при открытии файла. Например, если файл был записан в кодировке UTF-8, можно открыть его следующим образом:
 with open('filename.txt', encoding='utf-8') as f: 
# do something with the file
Если вы не знаете, в какой кодировке был записан файл, можно попробовать использовать модуль chardet, который автоматически определяет кодировку файла:
 import chardet 

with open('filename.txt', 'rb') as f:
result = chardet.detect(f.read())

print(result['encoding'])
Если ни один из этих методов не помогает, возможно, файл был поврежден или записан в неподдерживаемом формате. В этом случае, попробуйте создать новый файл и записать данные в него в правильной кодировке.
n1k17Знаток (381) 1 год назад
этот модуль надо качать ?
у меня в пайчарме его нет
Татьяна Просветленный (36704)
 pip install chardet 
Похожие вопросы