Bonjour à tous,

j'ai un fichier CSV très conséquent (plus de 30k lignes et une 20aine de colonnes) pour lequel je souhaite remplacer toutes les virgules par des points, puis le délimiteur qui est ";" en ",".

J'arrive bien à changer mes virgules en point, mais pas à enregistrer mes valeurs dans un nouveau CSV. Je n'ai aucune erreur, seulement un fichier output.csv créé mais qui reste vide.
Merci par avance !

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
 
import csv
 
fname = "fichier.csv"
 
#Ouvrir l'output.csv en écriture (au départ mis en fin de code, mais tenté avant au cas où, pas mieux)
with open('output.csv', 'w', newline='') as output:
    writer = csv.writer(output, delimiter=',')
 
#ouverture en lecture du CSV d'entrée
    with open(fname, "r", newline='') as fcsv:
        reader = csv.reader(fcsv, delimiter=';')
#changement des virgules en point pour chaque item
        for row in reader:
            for item in row:
                item = str(item)
                item = item.replace(",",".")
#print permettant de confirmer que les , sont devenues des .
            print(row)
 
#tentative d'écriture. J'ai fait aussi sans boucle avec writerows, même résultat
        for row in reader:
            writer.writerow(row)