Come leggere, scrivere e analizzare CSV in Python

4 ott 2021 5 min di lettura
Come leggere, scrivere e analizzare CSV in Python
Indice dei contenuti

Introduzione

Hai mai avuto bisogno di scambiare informazioni tra i programmi se non usando le variabili? Hai mai pensato o sentito la necessità di avere un file di testo per scambiare dati tra i programmi? Hai l'idea di archiviare dati/informazioni in un file esterno e successivamente estrarli quando necessario? Sì, possiamo archiviare e trasferire dati tra i programmi utilizzando il formato file noto come CSV.

Che cos'è un file CSV?

Un file CSV è un tipo di file utilizzato per archiviare i dati in un modulo tabulare strutturato (riga/colonna). È un file di testo normale e, come indica il nome, memorizza i valori separati da una virgola.

In questo articolo, avremo una discussione dettagliata sulla lettura, scrittura e analisi di un file CSV in Python.

Origine del file CSV

Il concetto di avere un file CSV è nato dalla necessità di esportare grandi quantità di dati da un luogo all'altro (programmi). Ad esempio, importando dati di fogli di calcolo di grandi dimensioni ed esportandoli in un database. Allo stesso modo, possiamo esportare grandi quantità di dati nei programmi.

Linguaggi diversi utilizzano formati diversi per memorizzare i dati, quindi quando i programmatori hanno bisogno di esportare dati da un programma all'altro hanno sentito il bisogno di avere una sorta di tipo di file universale con cui trasferire grandi quantità di dati; Un tipo di file che qualsiasi programma può leggere e analizzare nel proprio formato.

Comprendere la struttura di un file CSV

La struttura del file CSV sarà simile a questa:

Column 1, Column 2, Column 3
Value 1, Value 2, Value 3
..., ..., ...

Proprio come abbiamo colonne e righe nel database:

Oppure nei dati del foglio di calcolo tabulare:

Allo stesso modo, un file CSV è un semplice tipo di file di testo in cui i dati sono archiviati sotto forma di pezzi separati da una virgola:

Ogni colonna è separata da una virgola e ogni riga si trova sulla nuova riga.

Bene, dopo aver compreso il concetto di base, l'origine e la struttura del file CSV, impariamo a leggere, scrivere e analizzare CSV in Python.

Leggere un file CSV in Python

Per l'analisi dei file CSV, fortunatamente, abbiamo una libreria CSV integrata fornita da Python. La libreria CSV è davvero facile da usare e può essere utilizzata sia per leggere che per scrivere su un file CSV. Iniziamo con la lettura di un file CSV.

Per la lettura di un file CSV, verrà utilizzato l'oggetto lettore. Iniziamo a scrivere il codice per leggere il file CSV e comprendiamolo in una procedura passo passo:

Lettura di un file CSV con il delimitatore predefinito (virgola)

Prima di tutto, dobbiamo importare il modulo CSV:

import csv

Dopo aver importato il modulo CSV, ora siamo in grado di usarlo nel nostro programma Python.

Successivamente, dobbiamo aprire il file CSV utilizzando la funzione open() in modalità di lettura:

with open('students.csv', 'r') as csvfile

Dopo aver letto il file CSV, crea un oggetto lettore CSV:

csvreader = csv.reader(csvfile)

Poiché la virgola è il delimitatore predefinito, non è necessario menzionarlo specificamente. In caso contrario, dobbiamo fornire il delimitatore utilizzato dal file CSV.

Infine, per estrarre ogni riga, usa il ciclo for per scorrere l'oggetto csvreader e stamparli:

for student in csvreader:
  print(student)

Tutto sommato, il codice finale sarà simile a questo:

import csv
with open('students.csv', 'r') as csvfile
  csvreader = csv.reader(csvfile)
  for student in csvreader:
    print(student)

Una volta che tutto il codice è stato scritto, esegui il codice e avrai l'intero file CSV analizzato nell'array di python:

Lettura di un file CSV con un delimitatore personalizzato

Per leggere un file CSV con un delimitatore personalizzato, dobbiamo solo menzionare il delimitatore durante la lettura e la creazione di un oggetto lettore CSV.

Ad esempio, se mettiamo un punto e virgola (;) al posto di una virgola in studenti.csv:

E vuoi leggere il file CSV in base al punto e virgola, il delimitatore sarebbe menzionato come:

csvreader = csv.reader(csvfile, delimiter = ';')

Il codice finale con il delimitatore specifico sarà simile a questo:

import csv
with open('students.csv', 'r') as csvfile
  csvreader = csv.reader(csvfile, delimiter = ';')
  for student in csvreader:
    print(student)

L'output sarà lo stesso dell'esempio precedente:

Ecco come possiamo fornire un delimitatore personalizzato e leggere il file CSV in Python. Ora, impariamo a scrivere un file CSV in Python.

Scrivere un file CSV in Python

Per scrivere un file CSV, verrà utilizzato l'oggetto writer. Esistono due modi per scrivere un file CSV:

  • Scrivi le righe una per una usando la funzione writerow()
  • Scrivi più righe usando la funzione writerows()

Iniziamo a scrivere il codice per scrivere il file CSV e comprendiamo meglio entrambi i modi:

Come scrivere un file CSV usando la funzione writerow() in Python

Usando questa funzione writerow(), possiamo scrivere solo una riga alla volta in un file CSV.

Ad esempio, per scrivere tre righe in un nuovo file employee.csv, python andrà in questo modo:

import csv
with open('employees.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["ID", "Name", "Age"])
    writer.writerow([1, "John", 35])
    writer.writerow([2, "Harry", 25])

Il codice sopra creerà un file con il nome di dipendenti.csv e aggiungerà tre righe in quel file dipendenti.csv:

Tuttavia, questo metodo diventa inefficiente quando dobbiamo aggiungere centinaia di righe. In questi casi, dobbiamo aggiungere ogni riga una per una, il che diventa un lavoro frenetico. Per risolvere questo problema, Python fornisce anche una funzione writerows() per scrivere simultaneamente numerose righe in un file CSV.

Scrivere più righe usando la funzione writerows()

Usando la funzione writerows(), possiamo semplicemente fornire un array di array(rows) alla funzione writerows() e aggiungerà tutte le righe nel file CSV.

Ad esempio, per scrivere tre righe in un file dipendenti.csv, creiamo prima un array con il nome di "employees.csv" che contiene righe sotto forma di elementi dell'array e quindi forniamo l' array "employees.csv" a funzione writerows().

Tutto sommato, il pitone andrà così:

import csv
with open('employees.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["ID", "Name", "Age"])
    writer.writerow([1, "John", 35])
    writer.writerow([2, "Harry", 25])

Il codice sopra creerà un file con il nome di dipendenti.csv e aggiungerà tre righe in quel file dipendenti.csv, come ha fatto per la procedura precedente:

Utilizzando questo metodo, puoi aggiungere migliaia di righe nel file CSV in pochissimo tempo fornendo i dati sotto forma di array.

Conclusione

CSV è un formato di dati utilizzato per archiviare i dati in formato tabellare e trasferirli tra diverse applicazioni. Python ha un modualo integrato che consente al codice di leggere, scrivere e analizzare i dati CSV nel codice Python.

In questo post abbiamo imparato a leggere e scrivere dati sotto forma di file CSV utilizzando Python.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.