12.20 csv -- Lettura e scrittura di file CSV

Nuovo nella versione 2.3.

Il cosiddetto formato CSV (NdT: acronimo inglese di ``valori separati da virgole'') è il più comune formato per l'importazione e l'esportazione in fogli elettronici e database. Non esiste uno ``standard CSV'' esplicito, di conseguenza il formato viene definito in modo implicito dalle molte applicazioni che lo leggono e lo scrivono. La mancanza di uno standard comporta l'esistenza di sottili differenze tra i dati prodotti da un'applicazione e gli stessi dati letti da un'altra. Queste differenze possono rendere l'analisi dei file CSV generati da diverse applicazioni un po' difficoltosa. Inoltre, mentre i separatori ed i caratteri per quotare il testo possono variare, il formato complessivo è sufficientemente simile e quindi ha reso possibile scrivere un singolo modulo che gestisca in modo efficiente questi aspetti, nascondendo al programmatore i dettagli relativi alla lettura ed alla scrittura.

Il modulo csv implementa delle classi per leggere e scrivere dati da forma tabulare in file CSV. Il modulo permette al programmatore di dire: ``Scrivi questi dati nel formato preferito da Excel,'' oppure ``leggi questi dati che sono stati generati da Excel,'' senza la necessità di conoscere i dettagli relativi al formato CSV utilizzato da Excel. I programmatori possono anche descrivere il formato CSV utilizzato dalle loro applicazioni o definire degli opportuni formati CSV per loro scopi particolari.

Gli oggetti reader e writer del modulo csv leggono e scrivono sequenze. I programmatori possono anche leggere e scrivere dati sotto forma di dizionari, utilizzando le classi DictReader e DictWriter.

Note: Questa versione del modulo csv non supporta input in formato unicode. Inoltre, ci sono attualmente alcune problematiche relative ai caratteri ASCII NUL. Di conseguenza i dati in input dovrebbero essere caratteri ASCII stampabili per non creare problemi. Queste restrizioni verranno rimosse in futuro.

Vedete anche:

PEP 305, CSV File API
La proposta di miglioramento di Python che ha suggerito questa aggiunta a Python.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.