Python CSV: leggere e scrivere fogli di calcolo
Scopri come gestire i dati CSV in Python. Master csv.reader, csv.writer e DictReader/DictWriter per un'analisi efficiente delle tabelle.
Panoramica
CSV (Comma-Separated Values) è un formato onnipresente per l'esportazione e l'importazione di dati da fogli di calcolo e database relazionali. Poiché i file CSV sono semplici file di testo, sono universalmente supportati da strumenti analitici, piattaforme di database e linguaggi di programmazione. Python dispone di un modulo `csv` integrato specificatamente ottimizzato per l'analisi, la scrittura e la manipolazione di dati tabulari senza bisogno di librerie di terze parti come Panda.
Il modulo csv fornisce due interfacce principali: lettori/scrittori basati su elenchi e lettori/scrittori basati su dizionario. `csv.reader()` e `csv.writer()` rappresentano ogni riga nel CSV come un elenco di stringhe, il che è semplice ma richiede il riferimento alle colonne tramite il loro indice numerico. Per un approccio più efficace, gli sviluppatori utilizzano `csv.DictReader()` e `csv.DictWriter()`. Queste classi associano ogni riga a un dizionario utilizzando la riga di intestazione CSV come chiavi, producendo codice altamente leggibile che non si interrompe se le colonne vengono riordinate.
Quando si ha a che fare con file CSV, i dettagli della sintassi sono importanti. Programmi diversi utilizzano delimitatori diversi (come tabulazioni o punti e virgola) e gestiscono virgolette o terminazioni di riga in modi distinti. Il modulo `csv` ti consente di definire delimitatori personalizzati, regole di virgolette e caratteri di escape tramite un parametro 'dialetto'. Inoltre, quando si aprono file CSV in Python, è un requisito fondamentale passare `newline=''` alla funzione `open()` per evitare problemi di righe vuote su diversi sistemi operativi.
Codice e output di esecuzione
Scrittura di dati in un file CSV utilizzando DictWriter e rilettura con DictReader.
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.Implementazione passo dopo passo
- Esportazione di record di fogli di calcolo per l'analisi finanziaria
- Importazione di cataloghi di elenchi di contatti nei database
- Formattazione di output statistici da script computazionali
Domande frequenti
Perché devo specificare newline="" quando apro un file CSV?
Ciò è richiesto dallo scrittore interno del modulo csv per impedire l'inserimento di righe vuote aggiuntive, in particolare su piattaforme Windows.
Come posso analizzare un file CSV che utilizza tabulazioni anziché virgole?
Puoi passare il parametro delimitatore al lettore o allo scrittore, ad esempio csv.reader(file, delimiter='\t').
Argomenti correlati
Scopri come leggere e scrivere file in Python. Padroneggia open(), read(), write() e i gestori di contesto per gestire le operazioni sui file in modo sicuro senza perdite di risorse.
Analisi JSON PythonScopri come leggere, scrivere e analizzare i dati JSON in Python. Padroneggiare json.loads, json.dumps e personalizzare codificatori/decodificatori JSON.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come leggere e analizzare un file CSV in Python
Scopri come leggere e analizzare i file CSV in Python utilizzando il modulo csv integrato. Padroneggia la lettura come elenchi, lettori di dizionari e delimitatori personalizzati.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.