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 :

Lecture de caractère spéciaux à partir d'un fichier texte


Sujet :

Python

  1. #1
    Membre éprouvé
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 264
    Points : 945
    Points
    945
    Billets dans le blog
    2
    Par défaut Lecture de caractère spéciaux à partir d'un fichier texte
    Bonjour,
    J'ai un problème de lecture de fichier texte contenant ce caractère "°".

    Même avec cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: utf-8 -*-
    ; Python(2.7) m'affiche ça : "�" dans la console!

    Comment faire!
    J'ai recherché sur le net, mais je n'ai pas trouvé de réponses précises pour mon problème.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    # -*- coding: utf-8 -*- signale juste que le fichier texte (votre script Python est d'abord un fichier texte) à été écrit en utf-8. Mais si le caractère "°" n'a pas été encodé utf-8 par votre éditeur de texte préféré, çà ne marchera pas.
    Maintenant si le fichier texte dont vous parlez est autre chose que le script Python... # -*- coding: utf-8 -*- n'aidera pas beaucoup.
    Les informations "précises" se trouvent dans le Python unicode how_to...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par ABD-Z Voir le message
    Bonjour,
    J'ai un problème de lecture de fichier texte contenant ce caractère "°".

    Même avec cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: utf-8 -*-
    ; Python(2.7) m'affiche ça : "�" dans la console!

    Comment faire!
    J'ai recherché sur le net, mais je n'ai pas trouvé de réponses précises pour mon problème.
    Salut,

    J'ai testé sous IDLE de python et voilà ce que je peux te proposer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # -*- coding: utf-8 -*-
     
    print u"°"
    Et voilà ce que je récupère dans le Python Shell
    J'ai du mal aussi avec l'encodage mais faut dire que je me suis jamais trop penché sur la question car j'écris tout mes programmes en anglais même les messages de sortie sont en anglais et pas de problèmes

  4. #4
    Membre éprouvé
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 264
    Points : 945
    Points
    945
    Billets dans le blog
    2
    Par défaut
    Merci pour la réponse,

    J'ai utilisé codec comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     with codecs.open("txtf.txt", encoding = 'utf-8') as file:
    et Python renvoie une erreur :
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 14: invalid start byte

  5. #5
    Membre éprouvé
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 264
    Points : 945
    Points
    945
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par nekcorp Voir le message
    Salut,

    print u"°"
    [/CODE]

    Et voilà ce que je récupère dans le Python Shell
    J'ai aucun problème à afficher "°" en faisant print. C'est quand je lis un fichier texte contenant ce caractère que ça pose problème.

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Il faudrait peut-être savoir en quoi est encodé le texte d'origine ?
    Pas d'aide par mp.

  7. #7
    Membre éprouvé
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 264
    Points : 945
    Points
    945
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Il faudrait peut-être savoir en quoi est encodé le texte d'origine ?
    Et comment fait-on pour savoir comment c'est encodé?

  8. #8
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par ABD-Z Voir le message
    J'ai aucun problème à afficher "°" en faisant print. C'est quand je lis un fichier texte contenant ce caractère que ça pose problème.
    Dans ton premier post tu disais que la console ne t'affichée pas le caractère "°", tu parlais pas d'un problème de lecture où alors on c'est mal compris.

    Il est encodé comment ton fichier ?

  9. #9
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par ABD-Z Voir le message
    Et comment fait-on pour savoir comment c'est encodé?
    Tout dépend de l'éditeur de textes que tu utilises pour lire ton fichier.

    Dans Notepad++ c'est dans Encoding dans la barre des menus par exemple.

  10. #10
    Membre éprouvé
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 264
    Points : 945
    Points
    945
    Billets dans le blog
    2
    Par défaut
    Quand je fais print "°" il n'y a aucun problème.
    Par contre, quand je lis un fichier texte contenant ces caractères, et que j'affiche dans la console là ça fait des trucs bizarres...

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par ABD-Z Voir le message
    Quand je fais print "°" il n'y a aucun problème.
    Par contre, quand je lis un fichier texte contenant ces caractères, et que j'affiche dans la console là ça fait des trucs bizarres...
    certes... mais vous faites çà comment "afficher dans la console"?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Membre éprouvé
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 264
    Points : 945
    Points
    945
    Billets dans le blog
    2
    Par défaut
    Sublime text me dit que c'est du Windows Western 1252...
    Je fais quoi..

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par ABD-Z Voir le message
    Sublime text me dit que c'est du Windows Western 1252...
    Je fais quoi..
    Utiliser "cp-1252" à la place d'"utf-8"...
    Le mieux serait d'utiliser Python3.
    Vous auriez moins de problèmes sans avoir à comprendre ce qu'il faut faire pour les corriger...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. lecture et écriture à partir d'un fichier text
    Par bigmonstre dans le forum Débuter
    Réponses: 6
    Dernier message: 18/02/2010, 13h02
  2. Réponses: 8
    Dernier message: 12/02/2009, 16h20
  3. Réponses: 3
    Dernier message: 19/01/2009, 14h43
  4. Réponses: 6
    Dernier message: 08/12/2008, 12h22
  5. Réponses: 1
    Dernier message: 20/03/2006, 09h46

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