J'ai un fichier csv comme colonne 120 par 4500 ligne. J'ai lu le champ "nom du client" dans la première colonne, première rangée. Je regarde alors ce champ dans un deuxième dossier de cvs contenant le "nom de client, et l'identification de client" J'écris un nouveau dossier de cvs avec "le nom de client", identification de client ", et tout le reste du 119 colunm. jusqu'à la fin du premier fichier.Comment utiliser csv.reader en python avec le caractère français comme é, à, ç, ê, ë,
Cela fonctionne, mais j'ai un caractère spécial partout dans les deux premiers fichiers csv. et je ne veux pas avoir « Montr \ xe9al-Nord » au lieu de Montréal-Nord ou Val . \ xe9rie Lamarche » au lieu de 'Valérie Lamarche' dans le fichier csv résultant
est un code de test ici exemple:
# -*- coding: utf-8 -*-
import types
import wx
import sys
import os, os.path
import win32file
import shutil
import string
import wx.lib.dialogs
import re
import EmailAttache
import StringIO,csv
import time
import csv
outputfile=open(os.path.join(u"c:\\transales","Resultat-second_contact_act.csv"), "wb")
resultat = csv.writer (outputfile)
def Writefile (info1, info2):
print info1, info2
resultat.writerow([ `info1`,`info2` ,`line[1]`,`line[2]`,`line[3]`,`line[4]`,`line[5]`,`line[6]`,`line[7]`,`line[8]`,`line[9]`,`line[10]`,`line[11]`,`line[12]`,`line[13]`,`line[14]`,`line[15]`,`line[16]`,`line[17]` ])
data = open(os.path.join(u"c:\\transales","SECONDARY_CONTACTS.CSV"),"rb")
data2 = open(os.path.join(u"c:\\transales","AccountID+ContactID.csv"),"rb")
source1 = csv.reader(data)
source2 = csv.reader(data2)
for line in source1:
name= line[0]
data2.seek(0)
for line2 in source2:
if line[0] == line2[0]:
Writefile(line[0],line2[1])
break
outputfile.close()
Une aide?
salutations, francois
je modifie juste la ligne def WRITEFILE (info1, Info2): imprimer info1, info2 par def Fichier d'écriture (info1, info2): imprimer info1, info2, 'ligne [1]', 'ligne [2]', 'ligne [3]', 'ligne [4]' ,. .. Et vous savez quoi? le résultat d'impression a le bon caractère, mais toujours pas le resultat.writerow ... – francois
Ma réponse a inclus à tort un superflous '[' et ']' --- voir ma modification. –