bonjour,
j'essai de mettre à jour un csv à partir d'un autre...
table1 ( à mettre à jour)
ID texte
1 oui
2 non
3 non
table2
id
1
2
si les id de la table 2 se trouve dans la table 1 alors le texte passe à oui dans la table1
pour cette exemple j'essaie d'obtenir une table :
ID texte
1 oui
2 oui
3 non
donc je suis pas certain que ce soit la "Bonne" pratique mais je ne trouve pas de moyen d'enlever la lecture des colonnes et du coup ces entêtes sont ajoutés en + des autres lignes??
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
19
20
21
22
23
24
25
26 fichier2=open(r'C:\table1.csv',"r") fichier=r'C:\table2.csv' result=open(r'C:\fichi.csv', "w",newline='') reader2 = csv.reader(fichier2, delimiter=';',header=False) col_a=[row[0] for row in reader2] fich=[] fields = ["col1","col2"] writer = csv.writer(result,delimiter = ";") writer.writerow (fields) with open (fichier,'r') as csvfile: reader = csv.reader(csvfile, delimiter=';') next(reader,None) for row,text in reader: for rows in col_a: if rows==row: texte='oui' code=row fich.append((code,texte)) if row not in fich: fich.append((row,text)) writer = csv.writer(result,delimiter = ";",quotechar='"') writer.writerows(fich) result.close()
si quelqu'un à des liens ou explications à me donner...?
merci d'avance
edit : bon j'ai trouvé une solution pour les champs (en vert dans la partie code ) juste après avoir poster ce message..
par contre je n'arrive pas à remplir le nouveau csv avec cette valeur " 3 non" qui ne joint pas mais qui est présente dans la table1.
si il y a une manière plus "pythonesque", je suis preneur des quelques conseils...:-)
Partager