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 :
Je lis mon fichier plat de la manière suivante :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
J'obtiens un résultat équivalent à ça :
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 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
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
Partager