Ошибка "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'])
Если ни один из этих методов не помогает, возможно, файл был поврежден или записан в неподдерживаемом формате. В этом случае, попробуйте создать новый файл и записать данные в него в правильной кодировке.
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>