IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

UnicodeDecodeError: 'utf8' codec [Python 3.X]


Sujet :

Python

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut UnicodeDecodeError: 'utf8' codec
    Bonjour,

    sous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    uname -a
    Linux m036 3.13.0-137-generic #186-Ubuntu SMP
    Je veux convertir un fichier csv en html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    csvtotable -c Titre -d ';' /shared/RESULTAT.csv /shared/monfich.html
     
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 5: invalid continuation byte
    Merci pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    C'est un forum python.
    N'y aurait-il pas erreur de rubrique ?

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par big1 Voir le message
    Bonjour,

    sous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    uname -a
    Linux m036 3.13.0-137-generic #186-Ubuntu SMP
    Je veux convertir un fichier csv en html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    csvtotable -c Titre -d ';' /shared/RESULTAT.csv /shared/monfich.html
     
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 5: invalid continuation byte
    Merci pour votre aide.
    Bonjour

    A priori, le programme "csvtotable" (que je ne connais pas) ne peut pas traiter un fichier encodé en utf8.
    Déjà essaye de taper file RESULTAT.csv. Ca te donnera une description du fichier. Si tu vois "utf8" dans la description ça sera un indice.
    Ensuite, tu peux essayer de le convertir en ansi. Sous Linux je ne connais pas de commande qui le fasse mais le logiciel "notepad++" sous zindow le fait très bien. Et retenter ensuite avec le fichier ansi. Eventuellement chercher dans les options de "csvtotable".

    Sinon marco056 a raison. Ici on peut t'aider à coder en Python, mais pas à utiliser un logiciel déjà tout fait. Même si le message d'erreur qui en ressort semble laisser supposer que ce logiciel a été écrit en Python...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut
    Merci Sv@r.
    J'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     iconv -c -f UTF8 -t ASCII /shared/RESULTAT.csv > /tmp/$$ && cat /tmp/$$ > /shared/RESULTAT.csv
    Et ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     csvtotable -c Titre -d ';' /shared/RESULTAT.csv /shared/monfich.html
     
     File converted successfully
    Cordialement.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par big1 Voir le message
    Merci Sv@r.
    J'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     iconv -c -f UTF8 -t ASCII /shared/RESULTAT.csv > /tmp/$$ && cat /tmp/$$ > /shared/RESULTAT.csv
    Pour éviter les fichiers intermédiaires, il existe une astuce basée sur l'utilisation des flux numérotés que tu peux toi-même créer (à partir de "3" car "0", "1" et "2" sont déjà pris par stdin, stdout et stderr)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    exec 3</shared/RESULTAT.csv
    rm -f /shared/RESULTAT.csv
    iconv -c -f UTF8 -t ASCII 0<&3 >/shared/RESULTAT.csv
    Mais c'est du "sans-filet" (cause "rm" obligatoire afin de détacher le flux n° 3 du fichier pour pouvoir ensuite écrire dans ce même fichier).

    Maintenant, si "csvtotable" peut travailler depuis stdin ca te permettrait alors iconv -c -f UTF8 -t ASCII /shared/RESULTAT.csv |csvtotable -c Titre -d ';' >/shared/monfich.html...

    En tout cas c'est bien que tu aies le réflexe de bosser sous "/tmp" pour tes trucs temporaires, et que tu utilises "$$" dans tes noms de fichiers pour éviter les collisions. Et c'est vrai, effectivement j'avais oublié "iconv".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/04/2014, 23h43
  2. Réponses: 10
    Dernier message: 26/01/2013, 16h25
  3. Savoir si un codec est installé ?
    Par Neilos dans le forum Windows
    Réponses: 3
    Dernier message: 26/08/2004, 16h29
  4. Réponses: 2
    Dernier message: 23/06/2004, 16h06
  5. Driver carte son AC' 97 2.2 CODEC
    Par 3adoula dans le forum Matériel
    Réponses: 3
    Dernier message: 17/06/2004, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo