Bonjour,
depuis une journée je rencontre un problème lorsque je veux écrire une liste de données dans un fichier csv.
Python me donne l'erreur suivante : "UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 12: ordinal not in range(128)"
Voici mon programme qui recupere des données et qui écrit dans le fichier csv:
Code :
- # -*- encoding: utf-8 -*-
- import csv
- import os, sys
- from xml.dom import minidom
- #ouverture du fichier xml
- fsock = open('test.xml')
- #creation du parser xml
- xmldoc = minidom.parse(fsock)
- #ouverture des fichiers
- cr = csv.reader(open("test.csv","rb" ))
- c = csv.writer(open("MONFICHIER2.csv", "wb" ))
- #Lecture de tout le fichier
- for row in cr:
- long = len(row)
-
- print "longueur",long
- i = 0
- while i < long:
- #parcours tout les noeud xml ayant le nom passé en param
- for node in xmldoc.getElementsByTagName('child'):
- #recuperation des valeur des balises correspondantes
- n_test = node.getElementsByTagName('elt0')[0]
- test = n_test.firstChild.data
- n_modif = node.getElementsByTagName('elt1')[0]
- modif = n_modif.firstChild.data
- #correspondance entre le fichier csv et le fichier xml
- if row[i] == test:
- row[i] = modif
-
- i += 1
- print type(row)
-
- #ecriture de toutes les données dans le fichier csv
- c.writerows([row])
- #fermeture des differents fichiers
- fsock.close()
|
je vous remercie pour vos réponses