Il formato CSV è il formato di importazione ed esportazione più comune per database e fogli di calcolo. Questo tutorial fornirà un'introduzione dettagliata ai CSV e ai moduli e alle classi disponibili per leggere e scrivere dati in file CSV. Coprirà anche un esempio funzionante per mostrare come leggere e scrivere dati in un file CSV in Python.
Un file CSV (valori separati da virgola) consente di salvare i dati in una struttura tabulare con un'estensione .csv. I file CSV sono stati ampiamente utilizzati nelle applicazioni di e-commerce perché sono considerati molto facili da elaborare. Alcune delle aree in cui sono stati utilizzati includono:
Il modulo CSV ha diverse funzioni e classi disponibili per leggere e scrivere CSV e includono:
Il modulo csv.reader accetta i seguenti parametri:
csvfile
: Questo è di solito un oggetto che supporta il protocollo iteratore e di solito restituisce una stringa ogni volta che è __Il prossimo__()
il metodo è chiamato.dialetto = 'Excel'
: Un parametro facoltativo utilizzato per definire un set di parametri specifici per un particolare dialetto CSV.fmtparams
: Un parametro facoltativo che può essere utilizzato per sovrascrivere i parametri di formattazione esistenti.Ecco un esempio di come utilizzare il modulo csv.reader.
importare csv con open ('example.csv', newline = ") come File: reader = csv.reader (File) per riga nel reader: print (row)
Questo modulo è simile al modulo csv.reader e viene utilizzato per scrivere dati in un CSV. Ci vogliono tre parametri:
csvfile
: Questopuòsii qualsiasi oggetto con a Scrivi()
metodo.dialetto = 'Excel'
: Un parametro facoltativo utilizzato per definire un set di parametri specifici per un determinato CSV.fmtparam
: Un parametro facoltativo che può essere utilizzato per sovrascrivere i parametri di formattazione esistenti.DictReader e DictWriter sono classi disponibili in Python per leggere e scrivere in CSV. Sebbene siano simili alle funzioni di lettura e scrittura, queste classi usano oggetti dizionario per leggere e scrivere in file CSV.
Crea un oggetto che mappa le informazioni lette in un dizionario le cui chiavi sono date dal fieldnames
parametro. Questo parametro è facoltativo, ma quando non specificato nel file, i dati della prima riga diventano le chiavi del dizionario.
Esempio:
importare csv con open ('name.csv') come csvfile: reader = csv.DictReader (csvfile) per riga nel reader: print (row ['first_name'], row ['last_name'])
Questa classe è simile alla classe DictWriter e fa il contrario, che sta scrivendo dati in un file CSV. La classe è definita come csv.
DictWriter
(
csvfile
,
fieldnames
,
restval ="
,
extrasaction = 'rilancio'
,
dialetto = 'Excel'
,
* args
,
**
kwds
)
Il fieldnames
parametro definisce la sequenza di chiavi che identificano l'ordine in cui i valori nel dizionario sono scritti nel file CSV. A differenza di DictReader, questa chiave non è opzionale e deve essere definita per evitare errori durante la scrittura in un CSV.
Un dialetto è una classe helper utilizzata per definire i parametri per uno specifico lettore
o scrittore
esempio. I dialetti e i parametri di formattazione devono essere dichiarati quando si esegue una funzione di lettura o scrittura.
Ci sono diversi attributi supportati da un dialetto:
''
.QUOTE_NONE
.scrittore
. Il valore predefinito è '\ R \ n'
.'"'
.Vero
, qualsiasi spazio bianco immediatamente successivo al delimitatore è ignorato.Vero
, solleva un'eccezione Error on male CSV input.Vediamo come leggere un file CSV usando i moduli helper che abbiamo discusso sopra.
Crea il tuo file CSV e salvalo come esempio.csv. Assicurarsi che abbia il .csv
estensione e inserire alcuni dati. Qui abbiamo il nostro file CSV che contiene i nomi degli studenti e i loro voti.
Di seguito è riportato il codice per la lettura dei dati nel nostro CSV utilizzando entrambi csv.reader
funzione e il csv.DictReader
classe.
importare csv con open ('example.csv') come File: reader = csv.reader (File, delimiter = ",", quotechar = ",", quoting = csv.QUOTE_MINIMAL) per la riga nel lettore: print (row)
Nel codice sopra, importiamo il modulo CSV e quindi apriamo il nostro file CSV come File
. Quindi definiamo l'oggetto lettore e usiamo il csv.reader
metodo per estrarre i dati nell'oggetto. Quindi iteriamo sopra il lettore
oggetto e recupera ogni riga dei nostri dati.
Mostriamo i dati letti, stampandone il contenuto sulla console. Abbiamo anche specificato i parametri richiesti come delimitatore, quotechar e quoting.
Produzione
['first_name', 'last_name', 'Grade'] ['Alex', 'Brian', 'B'] ['Rachael', 'Rodriguez', 'A'] ['Tom', 'smith', 'C ']
Come accennato in precedenza, DictWriter ci consente di leggere un file CSV mappando i dati su un dizionario invece di stringhe come nel caso del csv.reader
modulo. Sebbene fieldname sia un parametro facoltativo, è importante avere sempre le colonne etichettate per la leggibilità.
Ecco come leggere un CSV usando la classe DictWriter.
import csv results = [] con open ('example.csv') come File: reader = csv.DictReader (File) per riga nel reader: results.append (row) stampa i risultati
Per prima cosa importiamo il modulo csv e inizializziamo una lista vuota risultati
che useremo per memorizzare i dati recuperati. Quindi definiamo l'oggetto lettore e usiamo il csv.DictReader
metodo per estrarre i dati nell'oggetto. Quindi iteriamo sopra il lettore
oggetto e recupera ogni riga dei nostri dati.
Infine, aggiungiamo ogni riga all'elenco dei risultati e stampiamo i contenuti sulla console.
Produzione
['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez ', ' Grade ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' Grade ':' B ',' first_name ':' Jane ',' last_name ': 'Oscar', 'Grado': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']
Come puoi vedere sopra, usare la classe DictReader è migliore perché fornisce i nostri dati in un formato dizionario che è più facile lavorare con.
Vediamo ora come procedere per scrivere dati in un file CSV usando il csv.writer
funzione e il csv.Dictwriter
classe discussa all'inizio di questo tutorial.
Il codice seguente scrive i dati definiti su example2.csv
file.
import csv myData = [["first_name", "second_name", "Grade"], ['Alex', 'Brian', 'A'], ['Tom', 'Smith', 'B']] myFile = apri ('example2.csv', 'w') con myFile: writer = csv.writer (myFile) writer.writerows (myData) print ("Writing complete")
Per prima cosa importiamo il modulo csv e il scrittore()
la funzione creerà un oggetto adatto alla scrittura. Per iterare i dati sulle righe, sarà necessario utilizzare il writerows ()
funzione.
Ecco il nostro CSV con i dati che abbiamo scritto.
Scriviamo i seguenti dati a un CSV.
data = ['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez', 'Grade': 'C', 'first_name': 'Tom', 'last_name': 'smith', 'Grade': 'B', 'first_name': 'Jane', 'last_name ':' Oscar ', ' Grade ':' A ',' first_name ':' Kennzy ',' last_name ':' Tim ']
Il codice è come mostrato di seguito.
importare csv con open ('example4.csv', 'w') come csvfile: fieldnames = ['first_name', 'last_name', 'Grade'] writer = csv.DictWriter (csvfile, fieldnames = fieldnames) writer.writeheader () writer.writerow ('Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian') writer.writerow ('Grade': 'A', 'first_name': 'Rachael' , 'last_name': 'Rodriguez') writer.writerow ('Grade': 'B', 'first_name': 'Jane', 'last_name': 'Oscar') writer.writerow ('Grade': ' B ',' first_name ':' Jane ',' last_name ':' Loive ') print ("Writing complete")
Per prima cosa definiamo il fieldnames
, che rappresenterà i titoli di ciascuna colonna nel file CSV. Il writerrow ()
il metodo scriverà su una riga alla volta. Se si desidera scrivere tutti i dati contemporaneamente, si utilizzerà il comando writerrows ()
metodo.
Ecco come scrivere su tutte le righe contemporaneamente.
importare csv con open ('example5.csv', 'w') come csvfile: fieldnames = ['first_name', 'last_name', 'Grade'] writer = csv.DictWriter (csvfile, fieldnames = fieldnames) writer.writeheader () writer.writerows (['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': 'A', 'first_name': 'Rachael', 'last_name ':' Rodriguez ', ' Grade ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' Grade ':' B ',' first_name ':' Jane ', 'last_name': 'Oscar', 'Grade': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']) print ("scrittura completa")
Questo tutorial ha coperto la maggior parte di ciò che è necessario per poter leggere e scrivere correttamente in un file CSV utilizzando le diverse funzioni e classi fornite da Python. I file CSV sono stati ampiamente utilizzati nelle applicazioni software perché sono facili da leggere e gestire e le loro dimensioni ridotte li rendono relativamente veloci da processare e trasferire.
Non esitate a vedere ciò che abbiamo a disposizione per la vendita e per studiare nel mercato, e non esitate a fare domande e fornire il vostro prezioso feedback utilizzando il feed qui sotto.
Impara Python con la nostra guida completa al tutorial su Python, sia che tu stia appena iniziando o che sei un programmatore esperto che cerca di imparare nuove abilità.