Maison > développement back-end > Tutoriel Python > Pourquoi est-ce que je reçois une erreur UnicodeDecodeError : le codec \'utf-8\' ne peut pas décoder l'octet lors d'une itération dans un fichier texte ?

Pourquoi est-ce que je reçois une erreur UnicodeDecodeError : le codec \'utf-8\' ne peut pas décoder l'octet lors d'une itération dans un fichier texte ?

Patricia Arquette
Libérer: 2024-11-04 13:35:01
original
1046 Les gens l'ont consulté

Why am I getting a UnicodeDecodeError: 'utf-8' codec can't decode byte when iterating through a text file?

"pour la ligne dans..." Résultats dans UnicodeDecodeError : le codec 'utf-8' ne peut pas décoder l'octet

Lors de la tentative de Parcourez les lignes d'un fichier texte en utilisant la syntaxe "for line in open('filename')", les programmeurs peuvent rencontrer une UnicodeDecodeError indiquant que le codec 'utf-8' ne peut pas décoder un octet particulier. Cette erreur se produit généralement lorsque l'encodage du fichier texte ne correspond pas à l'encodage assumé par le codec « utf-8 ».

Résoudre le problème

Pour résoudre ce problème erreur, il est nécessaire de préciser le bon encodage du fichier texte lors de son ouverture. Ceci peut être réalisé en ajoutant un paramètre "encoding=" à la fonction open(), comme indiqué ci-dessous :

<code class="python">for line in open('filename', encoding='utf-8'):
    # Read each line</code>
Copier après la connexion

Dans certains cas, l'encodage spécifié peut ne pas être correct, conduisant à la même erreur. Pour déterminer l'encodage approprié, les programmeurs peuvent inspecter le fichier texte et identifier le jeu de caractères utilisé.

À titre d'exemple, l'extrait de code fourni par l'interrogateur :

<code class="python">for line in open('u.item'):
    # Read each line</code>
Copier après la connexion

Échec du décodage du fichier texte car le codage a été supposé à tort être « utf-8 ». En inspectant le fichier texte, il a été constaté que le codage correct était « ISO-8859-1 ». La modification du code comme suit a résolu le problème :

<code class="python">for line in open('u.item', encoding='ISO-8859-1'):
    # Read each line</code>
Copier après la connexion

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