Maison >développement back-end >Tutoriel Python >Comment résoudre UnicodeDecodeError lors d'une itération dans des fichiers texte ?

Comment résoudre UnicodeDecodeError lors d'une itération dans des fichiers texte ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 11:30:29709parcourir

How to Resolve UnicodeDecodeError When Iterating Through Text Files?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn