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