0Pricing
Python Academy · Lezione

Lettura dei CSV con csv.reader

Legga i file CSV riga per riga e acceda alle colonne tramite indice.

Lettura dei CSV con csv.reader è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Introduzione

Il modulo csv di Python gestisce le complessità dei file CSV: campi tra virgolette, delimitatori e terminazioni di riga diverse.

Apertura di un file CSV

with open('data.csv', newline='') as f: è il metodo consigliato: newline='' consente al modulo csv di gestire le terminazioni di riga.
import csv, io
sample = 'name,age,city\nAlice,30,NYC\nBob,25,LA'
reader = csv.reader(io.StringIO(sample))
for row in reader:
    print(row)

Nozioni di base su csv.reader

csv.reader(f) restituisce un iteratore di righe, in cui ogni riga è una lista di stringhe.
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

Ignorare l'intestazione

next(reader) ignora la riga di intestazione. In alternativa, utilizzi csv.DictReader per accedere alle colonne tramite il nome.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
reader = csv.reader(io.StringIO(data))
header = next(reader)  # skip
for row in reader:
    print(row)

Delimitatore personalizzato

csv.reader(f, delimiter=';') legge i file separati da punto e virgola. Funziona con qualsiasi delimitatore costituito da un singolo carattere.
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

Gestione dei campi tra virgolette

csv.reader gestisce automaticamente i campi tra virgolette: 'Alice, Jr.' rimane un unico campo.
import csv, io
data = 'name,note\n"Smith, John","great guy"'
for row in csv.reader(io.StringIO(data)):
    print(row)

csv.DictReader

DictReader associa ogni riga a un OrderedDict (o a un normale dict in 3.8+), usando la riga di intestazione come chiavi.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
for row in csv.DictReader(io.StringIO(data)):
    print(row['name'], row['age'])

Conversione dei tipi

I valori CSV sono sempre stringhe. Li converta esplicitamente: int(row['age']), float(row['price']).
import csv, io
data = 'item,price\napple,1.5\nbanana,0.75'
for row in csv.DictReader(io.StringIO(data)):
    print(row['item'], float(row['price'])*2)

Gestione della codifica

open(file, encoding='utf-8-sig') gestisce il BOM UTF-8 (comune nei CSV generati da Excel).
# with open('data.csv', encoding='utf-8-sig', newline='') as f:
#     reader = csv.DictReader(f)
print('encoding demo')

File CSV di grandi dimensioni

csv.reader è lazy: legge una riga alla volta. Non è necessario caricare l'intero file in memoria.
import csv, io
data = '\n'.join(f'{i},{i*2}' for i in range(1000))
reader = csv.reader(io.StringIO(data))
print(sum(int(row[0]) for row in reader))

Rilevamento del dialetto

csv.Sniffer().sniff(sample) rileva automaticamente il delimitatore e lo stile di quoting.
import csv, io
data = 'a|b|c\n1|2|3'
sniff = csv.Sniffer().sniff(data[:100])
print('delimiter:', sniff.delimiter)
for row in csv.reader(io.StringIO(data), dialect=sniff):
    print(row)

Verifica rapida

Quale parametro dovrebbe impostare sempre quando apre un file CSV con open()?

Riepilogo

csv.reader: righe come liste di stringhe. DictReader: righe come dict. Apra sempre i file con newline=''. Gestisca la codifica per i file Excel. Converta esplicitamente i tipi.

Continui

Continui così! Passi alla lezione successiva.

Domande Frequenti

La lezione «Lettura dei CSV con csv.reader» è gratuita?

Sì — il testo completo di «Lettura dei CSV con csv.reader» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Lettura dei CSV con csv.reader»?

Legga i file CSV riga per riga e acceda alle colonne tramite indice. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Lettura dei CSV con csv.reader»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Codifica e decodifica JSON
  2. Gestione delle strutture JSON annidate
  3. Lettura dei CSV con csv.reader
  4. Scrittura dei CSV con csv.DictWriter
← Torna a Python Academy