====== Modificare file csv ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **// 02/03/2024 - 11:48 //** // // In questo esempio partiamo dal presupposto che il nostro file csv contiene un campo vuoto e noi dobbiamo riempirlo col valore di un altro campo. Più precisamente il campo cognome della nostra rubrica esportata in csv è vuoto e crea problemi di importazione al client email. Il seguente script ricopierà il campo email sul campo cognome. ====== Uso senza dizionari ====== **contatti_orig.csv** cognome,nome,email Di Matteo,Fabio,fad@email.it ,,senzanome@gmail.com Pinco,Pallino,pico@email.it ,,altro@gmail.com **fixcsv.py** #!/usr/bin/env python import csv csvfile=open('contatti_orig.csv', newline='') out=open('contatti_mod.csv','w') reader = csv.reader(csvfile) csv_writer = csv.writer(out) for row in reader: for i in range(len(row)): if (not row[0]):row[0]=row[2] print(row) csv_writer.writerow(row) out.close() csvfile.close() in row[0] abbiamo il primo campo. In row[2] il campo email come si può notare dal file csv ====== Uso con dizionari ====== #!/usr/bin/env python import csv csvfile=open('contacts_orig.csv', newline='\n') out=open('contatti_mod.csv','w', encoding='utf-8',newline='\n') reader = csv.DictReader(csvfile) csv_writer = csv.writer(out) out.write('First Name,E-mail Address \n') for row in reader: nominativo=row['First Name'] email=row['E-mail Address'] if (not nominativo): nominativo=email out.write(nominativo+','+email+'\n') out.close() csvfile.close()