В соответствии с документацией open()
:
, если кодировка не указана, используемое кодирование зависит от платформы: locale.getpreferredencoding (False) вызывается для получениятекущая кодировка локали.
То, как файл будет читаться, у всех разное.Чтобы гарантировать, что файл прочитан правильно , вам необходимо указать правильную кодировку .
В соответствии с документацией Проекта Moby в Википедии , «некоторые не-ASCII»остаются акцентированные символы, представленные в кодировке Mac OS Roman".В документации модуля Python codecs
вы можете найти правильное имя для этого кодека, которое называется mac_roman.Таким образом, вы можете использовать следующий код, который не приводит к ошибке декодирования:
with open("german.txt", 'rt', encoding='mac_roman') as log:
for line in log:
word = line.strip()
if len(word) > 20:
print(word)
UPDATE
Несмотря на документацию, файл, похоже, небыть закодирован с использованием Mac OS римской кодировки.Я расшифровал файл, используя все возможные кодировки и сравнил результаты.В списке всего 9 не-ASCII слов, и слово «Андре» кажется правильным, как указано в другом ответе.Ниже приведен список возможных кодировок (которые не были ошибочными и включали слово «Андре») и 9 не-ASCII слов, декодированных в соответствии с этой кодировкой:
encodings: cp437, cp860, cp861, cp863, cp865
words: André, Attaché, Château, Conférencier, Cézanne, Fabergé, Lévi-Strauss, Rhônetal, p≥ange
encodings: cp720
words: André, Attaché, Château, Conférencier, Cézanne, Fabergé, Lévi-Strauss, Rhônetal, pٌange
encodings: cp775
words: André, Attaché, Chāteau, Conférencier, Cézanne, Fabergé, Lévi-Strauss, Rhōnetal, p“ange
encodings: cp850, cp858
words: André, Attaché, Château, Conférencier, Cézanne, Fabergé, Lévi-Strauss, Rhônetal, p‗ange
encodings: cp852
words: André, Attaché, Château, Conférencier, Cézanne, Fabergé, Lévi-Strauss, Rhônetal, p˛ange
Для всех вышеупомянутыхкодировки, первые 8 слов одинаковы при декодировании.Только для последнего слова есть 9 различных результатов.
На основании этих результатов я думаю , что использовалась кодировка cp720 .Однако я не узнаю последнее слово из списка, поэтому не могу сказать наверняка.Вам решать, какое декодирование наиболее подходит для вас.