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 :

Comment connaître l'encodage d'un fichier texte?


Sujet :

Python

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Par défaut Comment connaître l'encodage d'un fichier texte?
    Bonjour,

    J'aurais voulu savoir s'il était possible de connaître l'encodage d'un fichier texte?
    je bute sur cette question depuis un petit moment...

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut
    Il n'y a pas de méthode tout faite pour cela.

    Tu peux cependant tenter ta chance avec le module mimietypes par ici : http://docs.python.org/lib/module-mimetypes.html

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Regarde aussi du côté du "BOM" (http://fr.wikipedia.org/wiki/Byte_Order_Mark).

    Par exemple, certains éditeurs de texte (y compris notepad sous Windows) ajoutent au début du texte à enregistrer en utf-8 (par exemple) les 3 octets: "EF BB BF", ce qui leur permet de repérer leur encodage la fois suivante.

    Pour y comprendre quelque chose, je te conseille d'utiliser un éditeur hexa et de faire quelques essais.

    Tyrtamos

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Par défaut Encodage de fichiers texte
    Bonjour,

    Je viens de regarder du côté des signatures présentes au début des fichiers. Un seul problème : ces séquences ne sont que très rarement présentes au début des fichiers . En même temps, vérifier leur présence ne coûte pas grand chose en terme de performances.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import codecs
    file = open(filename, 'r')
    file.next().startswith(codecs.BOM_UTF8)

    La première piste était de regarder dans l'en-tête des fichiers la présence d'un motif du type coding = qqchose. Un petit coup d'expressions régulières donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def coding(str):
        coding_re = re.compile("coding[:=]\s*([-\w_.]+)")
        match = coding_re.search(str)
        if not match:
            return None
        return match.group(1)
    En résumé donc, si le fichier comporte une marque d'encodage, il suffit de lire les 2 premières lignes puis de 1) vérifier que les lignes commencent par une marque d'ordre d'octets, et 2) vérifier la présence d'un motif "coding=...".

    Merci pour ces différentes pistes.

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/11/2010, 14h51
  2. Réponses: 13
    Dernier message: 22/01/2008, 15h25
  3. [JTable] Comment récuperer les données d'un fichier texte ?
    Par Makunouchi dans le forum Composants
    Réponses: 2
    Dernier message: 03/05/2005, 16h37
  4. Réponses: 5
    Dernier message: 25/01/2005, 14h26
  5. Comment faire une insertion dans un fichier texte ?
    Par Isa31 dans le forum Langage
    Réponses: 10
    Dernier message: 28/12/2004, 09h06

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