Dépannage d'UnicodeDecodeError avec "for line in..." Itérateurs
Lorsqu'ils travaillent avec des fichiers texte, les développeurs utilisent souvent des itérateurs comme "for line in..." in..." pour lire et traiter chaque ligne du fichier. Cependant, cela peut parfois conduire à une UnicodeDecodeError frustrante.
Problème :
Considérez le code suivant :
<code class="python">for line in open('u.item'): # Read each line</code>
Lors de l'exécution du code ci-dessus , vous pouvez rencontrer l'erreur suivante :
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Cette erreur se produit lorsque Python tente d'interpréter les octets du fichier en utilisant l'encodage UTF-8 mais rencontre un octet qui n'est pas conforme à la norme UTF-8. .
Solution :
La solution à ce problème réside dans la détermination de l'encodage correct pour le fichier. Dans ce cas, le fichier est codé en ISO-8859-1, qui est un système de codage de caractères différent de celui UTF-8.
Pour corriger l'erreur, spécifiez le codage lors de l'ouverture du fichier :
<code class="python">for line in open('u.item', encoding='ISO-8859-1'): # Read each line</code>
En remplaçant l'encodage par défaut de 'utf-8' par 'ISO-8859-1', l'encodage de caractères correct est utilisé pour décoder les octets du fichier, résolvant ainsi l'UnicodeDecodeError.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!