Enregistrer un fichier .txt avec caractères accentués

cs_Mic92 Messages postés 15 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 2 septembre 2010 - 2 sept. 2010 à 17:39
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 - 7 sept. 2010 à 13:57
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.

#! /usr/bin/python
# -*- coding: Utf-8 -*-

def enregTexte():
CB= (saisieCB.get(),)
print "CB", CB

FichierFidelCard = "fichier.db"
db_connexion = sqlite3.connect(FichierFidelCard)
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)Ca fonctionne sans é ou è etc..
J'ai essayé encode,décode et je plante.

Merci de m'éclairer...




Mic92

1 réponse

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
7 sept. 2010 à 13:57
Bonjour.
As-tu essayé ça ?
#! /usr/bin/python
# -*- coding: Utf-8 -*- 
a = u'\xe8'
f = open('t.log', 'w')
f.write(a.encode('iso-8859-1'))
f.close()
0
Rejoignez-nous