Barra laterale

programmazione:python:maneggiare_file_csv

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

programmazione/python/maneggiare_file_csv.txt · Ultima modifica: 21/06/2024 - 14:32 da Fabio Di Matteo