Ошибка UnicodeDecodeError: кодек ‘charmap’ не может декодировать байт 0x9d в позиции 295: сопоставление символов с

#python

#python

Вопрос:

Я пытаюсь запустить эту программу из книги. Я создал файл с именем ‘alice_2.txt ‘

 def count_words(filename):
    """Count the approximate number of words in a file."""
    try:
        with open(filename) as f_obj: 
            contents = f_obj.read()
    except FileNotFoundError:
        msg = "Sorry, the file "   filename   " does not exist."
        print(msg)
    else:
        # Count approximate number of words in the file.
        words = contents.split()
        num_words = len(words)
        print("The file "   filename   " has about "   str(num_words)  
            " words.")
            
filename = 'alice_2.txt'
count_words(filename)

  

Но я продолжаю получать это сообщение об ошибке

 UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 295: character maps to <undefined>
  

Кто-нибудь может объяснить, что это значит, и как это решить?

Ответ №1:

Вы пытаетесь использовать кодировку, которая не может сохранить символ, который у вас есть в файле. например ɛ , не может быть открыт в ascii, поскольку у него нет действительного кода ascii.

попробуйте открыть файл с помощью utf-8 .

 with open(filename, encoding='utf8') as f_obj:
    pass
    # DO your stuff