Formatul CSV este cel mai frecvent utilizat format de import și export pentru baze de date și foi de calcul. Acest tutorial va oferi o prezentare detaliată a fișierelor CSV și a modulelor și claselor disponibile pentru citirea și scrierea datelor în fișierele CSV. Acesta va acoperi, de asemenea, un exemplu de lucru pentru a vă arăta cum să citiți și să scrieți date într-un fișier CSV din Python.
Un fișier CSV (valori separate prin virgulă) permite salvarea datelor într-o structură tabulară cu extensia .csv. Fișierele CSV au fost utilizate pe scară largă în aplicațiile de comerț electronic, deoarece sunt considerate foarte ușor de procesat. Unele dintre zonele în care au fost utilizate includ:
Modulul CSV are mai multe funcții și clase disponibile pentru citirea și scrierea fișierelor CSV și include:
Modulul csv.reader ia următorii parametri:
csvfile
: Acesta este, de obicei, un obiect care acceptă protocolul iterator și, de obicei, returnează un șir de fiecare dată când este __Următor →__()
se numește metoda.dialect = 'Excel'
: Un parametru opțional utilizat pentru a defini un set de parametri specifici unui anumit dialect CSV.fmtparams
: Un parametru opțional care poate fi utilizat pentru a suprascrie parametrii existenți de formatare.Iată un exemplu de utilizare a modulului csv.reader.
import csv cu open ('example.csv', newline = ") ca fișier: reader = csv.reader (fișier) pentru rând în cititor: print (rând)
Acest modul este similar modulului csv.reader și se utilizează pentru a scrie date într-un CSV. Este nevoie de trei parametri:
csvfile
: Acestpoate safi orice obiect cu a scrie()
metodă.dialect = 'Excel'
: Un parametru opțional utilizat pentru a defini un set de parametri specifici unui anumit CSV.fmtparam
: Un parametru opțional care poate fi utilizat pentru a suprascrie parametrii existenți de formatare.DictReader și DictWriter sunt clase disponibile în Python pentru citirea și scrierea în CSV. Deși sunt similare cu funcțiile cititorului și scriitorului, aceste clase utilizează obiecte din dicționar pentru a citi și scrie în fișiere csv.
Creează un obiect care hărtește informațiile citite într-un dicționar ale cărui chei sunt date de către fieldnames
parametru. Acest parametru este opțional, dar când nu este specificat în fișier, datele din primul rând devin cheile dicționarului.
Exemplu:
import csv cu open ('name.csv') ca csvfile: reader = csv.DictReader (csvfile) pentru rând în cititor: print (rând ['first_name'], row ['last_name'
Această clasă este similară cu cea din clasa DictWriter și face opusul, care scrie date într-un fișier CSV. Clasa este definită ca csv.
DictWriter
(
csvfile
,
fieldnames
,
restval =“
,
extrasaction = 'ridica'
,
dialect = 'Excel'
,
* args
,
**
kwds
)
fieldnames
parametrul definește secvența de taste care identifică ordinea în care valorile din dicționar sunt înscrise în fișierul CSV. Spre deosebire de DictReader, această cheie nu este opțională și trebuie definită pentru a evita erorile la scrierea unui CSV.
Un dialect este o clasă helper utilizată pentru a defini parametrii pentru un anumit tip cititor
sau scriitor
instanță. Dialectele și parametrii de formatare trebuie să fie declarați la efectuarea unei funcții de citire sau de scriere.
Există mai multe atribute care sunt susținute de un dialect:
''
.QUOTE_NONE
.scriitor
. Este implicit '\ R \ n'
.„"“
.Adevărat
, orice spațiu alb imediat după delimitator este ignorată.Adevărat
, ridică o excepție Eroare la intrarea CSV necorespunzătoare.Să vedem cum să citim un fișier CSV folosind modulele de ajutor pe care le-am discutat mai sus.
Creați fișierul CSV și salvați-l ca example.csv. Asigurați-vă că are .csv
extinderea și completarea unor date. Aici avem fișierul CSV care conține numele studenților și notele lor.
Mai jos este codul pentru citirea datelor din CSV-ul nostru folosind ambele csv.reader
și funcția csv.DictReader
clasă.
csv.reader (fișier, delimiter = "," quotechar = "," quoting = csv.QUOTE_MINIMAL) pentru rând în cititor: print (rând)
În codul de mai sus, importăm modulul CSV și apoi deschidem fișierul CSV ca fiind Fişier
. Apoi definim obiectul cititorului și folosim csv.reader
metoda de extragere a datelor în obiect. Apoi repetam peste cititor
obiect și de a prelua fiecare rând de date noastre.
Afișăm datele citite imprimând conținutul lor în consola. De asemenea, am specificat parametrii necesari, cum ar fi delimiter, quotechar și citarea.
producție
['nume', 'ultimul nume', 'grad'] ['Alex', 'Brian', 'B'] ['Rachael', 'Rodriguez', 'A'] „]
După cum am menționat mai sus, DictWriter ne permite să citim un fișier CSV prin maparea datelor într-un dicționar în loc de șiruri de caractere, ca în cazul csv.reader
modul. Deși numele câmpului este un parametru opțional, este important să aveți întotdeauna coloanele dvs. etichetate pentru a fi citite.
Iată cum puteți citi un CSV utilizând clasa DictWriter.
import csv results = [] cu open ('example.csv') ca fișier: reader = csv.DictReader (File) pentru rând în cititor: results.append (row)
Importem mai întâi modulul csv și inițializăm o listă goală rezultate
pe care o vom folosi pentru a stoca datele preluate. Apoi definim obiectul cititorului și folosim csv.DictReader
metoda de extragere a datelor în obiect. Apoi repetam peste cititor
obiect și de a prelua fiecare rând de date noastre.
În cele din urmă, adăugăm fiecare rând la lista de rezultate și tipărim conținutul în consolă.
producție
'Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', ', ' Grad ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' Grad ':' B ',' first_name ':' Jane ',' last_name ': 'Oscar', 'Grad': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']
După cum puteți vedea mai sus, folosirea clasei DictReader este mai bună deoarece ne dă datele într-un format de dicționar care este mai ușor de utilizat cu.
Să vedem acum cum să procedăm la scrierea datelor într-un fișier CSV utilizând csv.writer
și funcția csv.Dictwriter
clasa discutată la începutul acestui tutorial.
Codul de mai jos scrie datele definite la example2.csv
fişier.
importul csv myData = [["first_name", "second_name", "Grad"], ['Alex', 'Brian', 'A'], ('example2.csv', 'w') cu imprimare myFile: writer = csv.writer (myFile) writer.writerows (myData) ("Scrierea completă")
Mai întâi vom importa modulul csv și scriitor()
funcția va crea un obiect adecvat pentru scriere. Pentru a itera datele peste rânduri, va trebui să folosim writerows ()
funcţie.
Iată CSV-ul nostru cu datele pe care le-am scris.
Să scriem următoarele date într-un CSV.
data = 'Grad': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grad': 'A', 'first_name': 'Rachael', 'last_name': "Rodriguez", 'Grad': 'C', 'first_name': 'Tom', 'last_name': 'smith', 'Grade': ' ':' Oscar ', ' Grad ':' A ',' first_name ':' Kennzy ',' last_name ':' Tim ']
Codul este după cum se arată mai jos.
import csv cu open ('example4.csv', 'w') ca csvfile: fieldnames = ['first_name', 'last_name', 'Grade'] writer = csv.DictWriter writers.writeheader writer.writerow ('Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian' , 'last_name': 'Rodriguez') writer.writerow ('Grade': 'B', 'first_name': 'Jane' B ',' first_name ':' Jane ',' last_name ':' Loive ') print ("Scrierea completă")
Mai întâi definim fieldnames
, care va reprezenta titlurile fiecărei coloane din fișierul CSV. writerrow ()
metoda va scrie la un rând la un moment dat. Dacă doriți să scrieți toate datele simultan, veți folosi writerrows ()
metodă.
Iată cum puteți scrie toate rândurile simultan.
import csv cu open ('example5.csv', 'w') ca csvfile: fieldnames = ['first_name', 'last_name', 'Grade'] writer = csv.DictWriter (csvfile, writer.writerows (['Grad': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': ' ':' Rodriguez ', ' Grad ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' Grade ' 'last_name': 'Oscar', 'Grad': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']) print
Acest tutorial a acoperit majoritatea a ceea ce este necesar pentru a putea citi și scrie cu succes într-un fișier CSV folosind diferitele funcții și clase furnizate de Python. Fișierele CSV au fost utilizate pe scară largă în aplicațiile software deoarece sunt ușor de citit și gestionate, iar mărimea lor mică le face relativ rapide pentru procesare și transfer.
Nu ezitați să vedeți ceea ce avem la dispoziție pentru vânzare și pentru a studia pe piață și nu ezitați să puneți întrebări și să oferiți feedback-ul dvs. valoros utilizând feedul de mai jos.
Aflați Python cu ghidul nostru complet de instrucțiuni Python, indiferent dacă sunteți doar începători sau sunteți un coder experimentat în căutarea unor noi abilități.