Первого раза делаю Python в каком-то время, и у меня возникают проблемы, делая простое сканирование файла, когда я запускаю следующий сценарий с Python 3.0.1,UnicodeDecodeError при чтении словарных слов файла с помощью сценария простого Python
with open("/usr/share/dict/words", 'r') as f:
for line in f:
pass
Я получаю это исключение:
Traceback (most recent call last):
File "/home/matt/install/test.py", line 2, in <module>
for line in f:
File "/home/matt/install/root/lib/python3.0/io.py", line 1744, in __next__
line = self.readline()
File "/home/matt/install/root/lib/python3.0/io.py", line 1817, in readline
while self._read_chunk():
File "/home/matt/install/root/lib/python3.0/io.py", line 1565, in _read_chunk
self._set_decoded_chars(self._decoder.decode(input_chunk, eof))
File "/home/matt/install/root/lib/python3.0/io.py", line 1299, in decode
output = self.decoder.decode(input, final=final)
File "/home/matt/install/root/lib/python3.0/codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1689-1692: invalid data
строка в файле он взрывает на это «аргентинец», который не кажется необычным в любом случае.
Update: Я добавил,
encoding="iso-8559-1"
к открытому() вызова, и это устранило проблему.
Вы уверены, что вы не означает 'изо-8859-1'? Это кажется гораздо более распространенным явлением. Кроме того, \ xf3 является «-» в Asunción в iso-8859 (и это кодовая U + 00F3 в Unicode), но в UTF-8 он будет представлен как «\ xc3 \ xb3». – Malvolio
@Malvolio: Это вполне возможно, я набрал неправильное имя кодировки ;-) –