====== 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()