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

Barbara Streisand
Libérer: 2024-11-03 11:30:29
original
649 Les gens l'ont consulté

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>
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal