première fois faire Python dans un certain temps, et je vais avoir du mal à faire une analyse simple d'un fichier quand je lance le script suivant avec Python 3.0.1,UnicodeDecodeError lors de la lecture des mots du dictionnaire fichier avec un script Python simple,
with open("/usr/share/dict/words", 'r') as f:
for line in f:
pass
Je reçois cette exception:
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
la ligne dans le fichier, il explose sur est « argentin », ce qui ne semble pas être inhabituel en aucune façon.
Mise à jour: J'ajouté,
encoding="iso-8559-1"
à l'appel open(), et il résolu le problème. Pouvez-vous vérifier pour vous assurer qu'il est valide UTF-8?
Etes-vous sûr que vous ne vouliez pas dire 'iso-8859-1'? Cela semble être beaucoup plus commun. De plus, \ xf3 est "ó" dans Asunción dans iso-8859 (et c'est le code-code U + 00F3 dans Unicode), mais dans UTF-8, il serait représenté par "\ xc3 \ xb3". – Malvolio
@Malvolio: Il est tout à fait possible que j'ai tapé le nom de codage faux ;-) –