Encodage de données dans un fichier Excel à partir d'un fichier plat
Bonjour à tous,
Je sollicite la communauté car je suis débutant en Python et je rencontre un pb concernant l'encodage de caractères lorsque j'écris dans un fichier Excel à partir de données contenues dans une fichier plat.
Tout d'abord voici le contexte technique :
Python v3.4.2
Librairie xlsxwriter v0.6.6
Fichier à lire : encodage en ANSI (Informations dispensées par Notepad ++ => ANSI as UTF8, le pb est constaté également avec des fichiers d'entrée purement UTF-8)
Extrait du fichier plat :
Citation:
1079261~Annulé : Bouclage HTA sur départ Vallée de l' Ouche de CRUGEY~HTA~Etude~0~Côte d'Or~RAB-HTA-2013-002025~Investissement (CAPEX)~~1880365282~898831200~3520224663~~~~~08/10/2013~~~~TMP01101480~~Ce départ comporte une longue antenne de 9 postes sur la Commune de La Bussière sur Ouche NB : La FP 2013-000893 suggère un IACM entre l' IPT 145 et l' IAT 107 ( 11 dérivations - 19 postes )~
1079300~Annulé : OMT sur départ Laquais de CHATILLON~HTA~Etude~0~Côte d'Or~RAB-HTA-2013-002038~Investissement (CAPEX)~~1880365282
Je lis mon fichier plat de la manière suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
f = open(path_TMP+"/" +file,'rt')
lignes = f.readlines()
f.close()
index_ligne = 1
for ligne in lignes:
fields = ligne.split("~")
worksheet.write_row(0, 0, entetes[nom_feuille])
k=0
while k < len(fields):
champ = fields[k].encode('utf-8')
worksheet.write_row(index_ligne, k, str(champ))
k=k+1
#worksheet.write_row(index_ligne, 0, fields)
index_ligne = index_ligne + 1 |
J'obtiens un résultat équivalent à ça :
045985456 |
Annulé : Bouclage HTA sur départ Vallée de l' Ouche de CRUGEY |
HTA |
Etude |
... |
56457 |
Sécurisation zone de peche Ã* PERRIGNY SUR L'OGNON |
HTA |
Côte d'Or |
... |
1234 |
Structure sur départ Chambeire de GENLIS |
DST établie |
... |
... |
Après de multiples recherche sur internet et des bcp de test de bout de code je n'arrive pas à visualiser correctement mes accents dans Excel (exemple : é, è, à, ê, etc).
Pourriez vous m'expliquer d'ou vient mon pb et comment le résoudre s'il vous plait ?
D'avance merci