cat python/csv-dati-a-tabella.md
CSV: dati a tabella
Usare CSV per dati semplici a righe e colonne.
Prima idea
CSV è un formato semplice per tabelle: ogni riga è un elemento, ogni colonna è un’informazione. Va bene per dati piccoli e facili da aprire anche con un foglio di calcolo.
Questa lezione fa parte del modulo File, dati e piccoli automatismi. L’obiettivo del modulo è: Leggere e salvare dati semplici per costruire programmi che ricordano qualcosa tra un’esecuzione e l’altra.
Parole nuove
- CSV: file di testo con valori separati da virgole.
- riga: un elemento della tabella.
- colonna: un tipo di informazione.
Cosa impari
- Scrivere righe CSV con il modulo csv.
- Leggere righe come dizionari.
- Tenere intestazioni chiare.
Esempio da copiare
import csv
with open("spese.csv", "w", newline="", encoding="utf-8") as file:
campi = ["voce", "euro"]
writer = csv.DictWriter(file, fieldnames=campi)
writer.writeheader()
writer.writerow({"voce": "merenda", "euro": 3})
Prima copialo senza modificarlo. Poi cambia una cosa sola e riesegui: una parola, un numero, un messaggio o un valore.
Prova guidata
- Crea un CSV con voce ed euro.
- Scrivi almeno tre righe.
- Apri il file e controlla il contenuto.
Esercizi
Base · facile
Crea un CSV con intestazione voce,euro e scrivi una riga di dati con csv.DictWriter.
Soluzione
import csv
with open("spese.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=["voce", "euro"])
writer.writeheader()
writer.writerow({"voce": "merenda", "euro": 3})
writeheader scrive i nomi delle colonne; ogni writerow aggiunge una riga.
Intermedio · medio
Scrivi almeno tre righe nel CSV partendo da una lista di dizionari (usa un ciclo), poi rileggi il file con csv.DictReader e stampa ogni voce.
Sfida · difficile
Leggi il CSV e calcola il totale della colonna euro, ricordando che i valori letti sono stringhe da convertire. Spiega quando CSV è adatto (dati tabellari semplici) e i suoi limiti rispetto a JSON (niente strutture annidate).
Controllo finale
Hai finito quando il CSV ha intestazione e almeno tre righe di dati.