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 :

enregistrer un .TXT avec caractère accentué


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 11
    Points
    11
    Par défaut enregistrer un .TXT avec caractère accentué
    Bonjour à tous,

    J'enregistre dans une BDD (sqlite) pas de problème les caractères accentués sont enregistré, Mais si je veux enregistrer une fichier .TXT :

    UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 4: ordinal not in range(128) pour les caractères accentués.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #! /usr/bin/python 
    # -*- coding: Utf-8 -*- 
     
    def enregTexte(): 
    CB= (saisieCB.get(),) 
    print "CB", CB 
     
    FichierFidelCard = "fichier.db" 
    db_connexion = sqlite3.connect(FichierF) 
    cur = db_connexion.cursor() 
    cur.execute("SELECT CB,DATE,SEXE, NOM , PRENOM from CLIENTS WHERE CB = ?",CB) 
    resultat = cur.fetchall() 
     
    ftexte=open("FDtexte.txt","a") 
    ftexte.write(" \n") 
    Tliste =(str(resultat[0][0])+"-"+resultat[0][1]+"-"+ str(resultat[0][2])+" "+str(resultat [0][3])+" "+str(resultat[0][4])) 
     
    ftexte.write(Tliste) 
    ftexte.close() 
    cur.close() 
    db_connexion.close()
    J'ai réduis au max pour la clareté(donc s'il manque une ")", pas de problème)
    J'ai essayé encode,décode et je plante.

    Merci de m'éclairer...

  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,

    A priori Tliste est un amalgame de bytes et de caractères Unicode, il serait sain que ce soit "unicode" (d'enlever les 'str')

    Pour le reste comment sérialiser de l'Unicode en UTF-8:

    • ftexte.write(Tliste.encoding('UTF-8')), ou
    • ouvrir le fichier via codecs.open('nom', 'a', 'utf-8')

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/03/2009, 19h50
  2. Probleme de carré avec caractère accentué
    Par kaygee dans le forum ASP
    Réponses: 3
    Dernier message: 16/10/2008, 15h51
  3. Fichier .txt avec caractères dedans
    Par Tonton Ricardo dans le forum MATLAB
    Réponses: 9
    Dernier message: 25/06/2008, 14h40
  4. Réponses: 5
    Dernier message: 19/09/2007, 14h47
  5. [JEditorPane] Problème avec caractère accentué
    Par scifire dans le forum Composants
    Réponses: 6
    Dernier message: 14/09/2005, 14h58

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