csv – Lettura e scrittura di file CSV¶

Contenuto del modulo¶

Il csv il modulo definisce le seguenti funzioni:

csv.reader(csvfile, dialect = “excel”, ** fmtparams ) ¶

Restituisce un oggetto lettore che itera su righe nel dato csvfile.csvfile può essere qualsiasi oggetto che supporti il protocollo iteratore e restituisce astring ogni volta che viene chiamato il suo metodo __next__() – gli oggetti file e gli oggetti elenco sono entrambi adatti. Se csvfile è un oggetto file, dovrebbe essere aperto con newline="". 1 È possibile fornire un parametro optionaldialect che viene utilizzato per definire un insieme di parametri specifici per un particolare dialetto CSV. Può essere unistanza di una sottoclasse della classe Dialect o una delle stringhe restituite dalla funzione list_dialects(). Laltro argomento opzionale della parola chiave fmtparams può essere fornito per sovrascrivere i singoli parametri di formattazione nella selezione corrente. Per i dettagli completi sul dialetto e sui parametri di formattazione, vedere la sezione Dialetti e parametri di formattazione.

Ogni riga letta dal file csv viene restituita come un elenco di stringhe. Non viene eseguita la conversione automatica del tipo di dati a meno che non sia specificato il formatoption QUOTE_NONNUMERIC (nel qual caso i campi non quotati vengono trasformati in float).

Un breve esempio di utilizzo:

csv.writer(csvfile, dialect = “excel”, ** fmtparams) ¶

Restituisce un oggetto writer responsabile della conversione del i dati dellutente in stringhe delimitate sulloggetto simile a file. csvfile può essere qualsiasi oggetto con un metodo write(). Se csvfile è un oggetto file, dovrebbe essere aperto con newline="" 1. Può essere fornito un dialectparameter opzionale che viene utilizzato per definire un insieme di parametri specifici per un particolare dialetto CSV. Può essere unistanza di una sottoclasse della classe Dialect o una delle stringhe restituite dalla funzione list_dialects(). Laltro argomento opzionale della parola chiave fmtparams può essere fornito per sovrascrivere i singoli parametri di formattazione nella selezione corrente. Per i dettagli completi sul dialetto e sui parametri di formattazione, vedere la sezione Dialetti e parametri di formattazione. Per rendere il più semplice possibile linterfacciamento con i moduli che implementano lAPI DB, il valore None viene scritto come stringa vuota. Sebbene questa non sia una trasformazione reversibile, semplifica il dump dei valori dei dati NULL SQL nei file CSV senza preelaborare i dati restituiti da una chiamata cursor.fetch*. Tutti gli altri dati non stringa sono stringificati con str() prima di essere scritto.

Un breve esempio di utilizzo:

csv.register_dialect(name]) ¶

Associa il dialetto al nome. il nome deve essere una stringa. Il dialetto può essere specificato passando una sottoclasse di Dialect, o tramite argomenti di parole chiave fmtparams, o entrambi, con argomenti di parole chiave che sovrascrivono i parametri del dialetto. Per i dettagli completi sul dialetto e sui parametri di formattazione, vedere la sezione Dialetti e parametri di formattazione.

csv.unregister_dialect(name) ¶

Elimina il dialetto associato al nome dal registro dei dialetti. Viene generato un Error se nome non è un nome dialetto registrato.

csv.get_dialect(name) ¶

Restituisce il dialetto associato al nome. Viene sollevato un Error sename non è un nome di dialetto registrato. Questa funzione restituisce un Dialect.

csv.list_dialects() ¶

Restituisce i nomi di tutti i dialetti registrati.

csv.field_size_limit() ¶

Restituisce la dimensione massima del campo corrente consentito dal parser. Se viene fornito new_limit, questo diventa il nuovo limite.

Il modulo csv definisce le seguenti classi:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = “excel”, * args, ** kwds) ¶

Crea un oggetto che funziona come un normale lettore ma mappa le informazioni in ogni riga a un dict le cui chiavi sono fornite dal parametro fieldnames opzionale.

Il parametro fieldnames è una sequenza. Se i nomi di campo vengono omessi, i valori nella prima riga del file f verranno utilizzati come nomi di campo. Indipendentemente da come vengono determinati i nomi dei campi, il dizionario conserva il loro ordine originale.

Se una riga ha più campi dei nomi dei campi, i dati rimanenti vengono inseriti in una lista e memorizzati con il nome del campo specificato da restkey (che per impostazione predefinita è None). Se una riga non vuota ha meno campi dei nomi dei campi, i valori mancanti vengono riempiti con il valore di restval (che per impostazione predefinita è None).

Tutti gli altri argomenti facoltativi o di parole chiave vengono passati allistanza reader sottostante.

Modificato nella versione 3.6: le righe restituite sono ora di tipo OrderedDict.

Modificato nella versione 3.8: le righe restituite ora sono di tipo dict.

Un breve esempio di utilizzo:

classcsv.DictWriter( f, fieldnames, restval = “”, extrasaction = “raise”, dialect = “excel”, * args, ** kwds) ¶

Crea un oggetto che funziona come un normale scrittore ma mappa i dizionari sulle righe di output. Il parametro fieldnames è un sequence di chiavi che identifica lordine in cui i valori nel dizionario passati al metodo writerow() vengono scritti in filef. Il parametro restval facoltativo specifica il valore da scrivere se nel dizionario manca una chiave nei nomi dei campi. Se il dizionario passato al metodo writerow() contiene una chiave non trovata negli infieldnames, il parametro opzionale extrasaction indica quale azione intraprendere. Se è impostato su "raise", viene generato il valore predefinito, un ValueError. Se è impostato su "ignore", i valori aggiuntivi nel dizionario vengono ignorati. gli argomenti facoltativi o di parole chiave vengono passati allistanza writer sottostante.

Tieni presente che, a differenza della classe DictReader, i nomi dei campi il parametro della classe DictWriter non è facoltativo.

Un breve esempio di utilizzo:

classcsv.Dialect

La classe Dialect è una classe contenitore basata principalmente per i suoi attributi, che vengono utilizzati per definire i parametri per uno specifico reader o writer istanza.

classcsv.excel

La classe excel definisce le normali proprietà di un file CSV generato da Excel. È registrato con il nome dialettale "excel".

classcsv.excel_tab

La classe excel_tab definisce le solite proprietà di un file delimitato da TTA generato da Excel. È registrato con il nome dialettale "excel-tab".

classcsv.unix_dialect

La classe unix_dialect definisce le solite proprietà di un file CSV generato su sistemi UNIX, cioè utilizzando "\n" come terminatore di riga e quotingall i campi. È registrato con il nome dialettale "unix".

Nuovo nella versione 3.2.

classcsv.Sniffer

La classe Sniffer viene utilizzata per dedurre il formato di un file CSV.

La classe Sniffer fornisce due metodi:

sniff(sample, delimiters = None) ¶

Analizza il campione fornito e restituisce una sottoclasse Dialect che riflette i parametri trovati. Se viene fornito il parametro delimitatore facoltativo, viene interpretato come una stringa contenente possibili caratteri delimitatore di valore.

has_header(campione) ¶

Analizza il testo di esempio (si presume che sia in Formato CSV) e restituire True se la prima riga sembra essere una serie di intestazioni di colonna.

Un esempio per Sniffer use:

Il modulo csv definisce le seguenti costanti:

csv.QUOTE_ALL

Indica a writer oggetti di citare tutti i campi.

csv.QUOTE_MINIMAL

Indica agli oggetti writer di citare solo quei campi che contengono caratteri speciali come delimitatore, quotechar o uno qualsiasi dei caratteri nel determinatore lineare.

csv.QUOTE_NONNUMERIC

Indica agli oggetti writer di citare tutti i campi non numerici .

Indica al lettore di conv ert tutti i campi senza virgolette per digitare float.

csv.QUOTE_NONE

Istruisce writer oggetti per non citare mai i campi. Quando il currentdelimiter si trova nei dati di output, è preceduto dal carattere escapecharc. Se escapechar non è impostato, il writer solleverà Error se vengono rilevati caratteri che richiedono lescape.

Istruisce reader per non eseguire alcuna elaborazione speciale delle virgolette.

Il modulo csv definisce la seguente eccezione:

eccezionecsv.Error

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *