Cos'è un file CSV?
Un file CSV è un tipo di file di testo normale che utilizza una struttura specifica per organizzare i dati tabulari. CSV è un formato comune per lo scambio di dati in quanto è compatto, semplice e generale. Molti servizi online consentono ai propri utenti di esportare dati tabulari dal sito Web in un file CSV. I file di CSV si apriranno in Excel e quasi tutti i database dispongono di uno strumento per consentire l'importazione da file CSV. Il formato standard è definito da dati di righe e colonne. Inoltre, ogni riga viene terminata da una nuova riga per iniziare la riga successiva. Anche all'interno della riga, ogni colonna è separata da una virgola.
In questo tutorial imparerai:
- Cos'è un file CSV?
- File di esempio CSV.
- Modulo CSV Python
- Funzioni del modulo CSV
- Lettura di file CSV
- Leggere come dizionario
- Scrittura su file CSV
- Lettura di file CSV con Panda
- Scrittura su file CSV con Panda
File di esempio CSV.
I dati sotto forma di tabelle sono anche chiamati CSV (valori separati da virgola), letteralmente "valori separati da virgola". Questo è un formato di testo inteso per la presentazione di dati tabulari. Ogni riga del file è una riga della tabella. I valori delle singole colonne sono separati da un simbolo separatore: una virgola (,), un punto e virgola (;) o un altro simbolo. CSV può essere facilmente letto ed elaborato da Python.
Considera il seguente Tabe
Dati tabella
Linguaggio di programmazione | Progettato da | Apparso | Estensione |
Pitone | Guido van Rossum | 1991 | .py |
Giava | James Gosling | 1995 | .Giava |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Puoi rappresentare questa tabella in csv come di seguito.
Dati CSV
Linguaggio di programmazione, Progettato da, Apparso, Estensione
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C ++, Bjarne Stroustrup, 1983, .cpp
Come puoi vedere, ogni riga è una nuova riga e ogni colonna è separata da una virgola. Questo è un esempio di come appare un file CSV.
Scarica dati CSV
Modulo CSV Python
Python fornisce un modulo CSV per gestire i file CSV. Per leggere / scrivere dati, è necessario scorrere le righe del CSV. È necessario utilizzare il metodo di divisione per ottenere i dati dalle colonne specificate.
Funzioni del modulo CSV
Nella documentazione del modulo CSV puoi trovare le seguenti funzioni:
- csv.field_size_limit - restituisce la dimensione massima del campo
- csv.get_dialect - ottiene il dialetto associato al nome
- csv.list_dialects - mostra tutti i dialetti registrati
- csv.reader - legge i dati da un file csv
- csv.register_dialect - associa il dialetto al nome
- csv.writer - scrive i dati in un file csv
- csv.unregister_dialect: elimina il dialetto associato al nome del registro dei dialetti
- csv.QUOTE_ALL - Cita tutto, indipendentemente dal tipo.
- csv.QUOTE_MINIMAL - Campi citazione con caratteri speciali
- csv.QUOTE_NONNUMERIC - Cita tutti i campi che non sono valori numerici
- csv.QUOTE_NONE - Non citare nulla nell'output
In questo tutorial, ci concentreremo solo sulle funzioni di lettura e scrittura che consentono di modificare, modificare e manipolare i dati in un file CSV.
Come leggere un file CSV
Per leggere i dati dai file CSV, è necessario utilizzare la funzione di lettura per generare un oggetto lettore.
La funzione di lettura è stata sviluppata per prendere ogni riga del file e fare un elenco di tutte le colonne. Quindi, devi scegliere la colonna per la quale desideri i dati variabili.
Sembra molto più complicato di quello che è. Diamo un'occhiata a questo esempio e scopriremo che lavorare con il file csv non è così difficile.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Quando esegui il programma sopra, l'output sarà:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Come leggere un CSV come dizionario
Puoi anche utilizzare DictReader per leggere i file CSV. I risultati vengono interpretati come un dizionario in cui la riga di intestazione è la chiave e le altre righe sono valori.
Considera il codice seguente
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Il risultato di questo codice è:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
E in questo modo per leggere i dati dal file CSV è molto più semplice del metodo precedente. Tuttavia, questo non è il modo migliore per leggere i dati.
Come scrivere file CSV
Quando si dispone di un insieme di dati che si desidera memorizzare in un file CSV, è necessario utilizzare la funzione writer (). Per iterare i dati sulle righe (righe), è necessario utilizzare la funzione writerow ().
Considera il seguente esempio. Scriviamo i dati in un file "writeData.csv" dove il delimitatore è un apostrofo.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Il risultato nel file CSV è:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Lettura di file CSV con Panda
Pandas è una libreria opensource che ti permette di manipolare i dati in Python. I panda forniscono un modo semplice per creare, manipolare ed eliminare i dati.
È necessario installare la libreria pandas con il comando pip install pandas
. In Windows, eseguirai questo comando nel prompt dei comandi mentre sei in Linux nel Terminale.
Leggere il CSV in un DataFrame panda è molto semplice e veloce:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Risultato:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Libreria molto utile. In sole tre righe di codice ottieni lo stesso risultato di prima. I panda sanno che la prima riga del CSV conteneva nomi di colonne e li utilizzerà automaticamente.
Scrittura su file CSV con Panda
Scrivere su file CSV con Pandas è facile come leggere. Qui puoi convincerti. Innanzitutto è necessario creare DataFrame in base al codice seguente.
from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)
Ecco l'output
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
E il file CSV viene creato nella posizione specificata.
Conclusione
Quindi, ora sai come utilizzare il metodo "csv" e anche leggere e scrivere dati in formato CSV. I file CSV sono ampiamente utilizzati nelle applicazioni software perché sono facili da leggere e gestire e le loro dimensioni ridotte li rendono relativamente veloci per l'elaborazione e la trasmissione.
Il modulo csv fornisce varie funzioni e classi che ti permettono di leggere e scrivere facilmente. Puoi guardare la documentazione ufficiale di Python e trovare alcuni suggerimenti e moduli più interessanti. CSV è il modo migliore per salvare, visualizzare e inviare dati. In realtà, non è così difficile da imparare come sembra all'inizio. Ma con un po 'di pratica, lo padroneggerai.
Pandas è un'ottima alternativa per leggere i file CSV.
Inoltre, ci sono altri modi per analizzare i file di testo con librerie come ANTLR, PLY e PlyPlus. Possono tutti gestire analisi pesanti e se la semplice manipolazione di stringhe non funziona, ci sono espressioni regolari che puoi usare.