CSV-formatet er det mest brukte importerings- og eksportformatet for databaser og regneark. Denne opplæringen vil gi en detaljert introduksjon til CSV-er og modulene og klassene som er tilgjengelige for å lese og skrive data til CSV-filer. Den vil også dekke et fungerende eksempel for å vise deg hvordan du leser og skriver data til en CSV-fil i Python.
En CSV-fil (kommaseparerte verdier) lar data lagres i en tabellstruktur med en .csv-utvidelse. CSV-filer har blitt brukt mye i e-handelsapplikasjoner fordi de anses veldig enkle å behandle. Noen av områdene hvor de er blitt brukt er:
CSV-modulen har flere funksjoner og klasser tilgjengelig for lesing og skriving av CSVer, og de inkluderer:
Csv.reader-modulen tar følgende parametere:
csvfile
: Dette er vanligvis et objekt som støtter iteratorprotokollen og vanligvis returnerer en streng hver gang den er __next __ ()
Metoden kalles.dialekt = 'utmerker'
: En valgfri parameter som brukes til å definere et sett med parametere som er spesifikke for en bestemt CSV-dialekt.fmtparams
: En valgfri parameter som kan brukes til å overstyre eksisterende formateringsparametere.Her er et eksempel på hvordan du bruker csv.reader-modulen.
importer csv med åpen ('example.csv', newline = ") som fil: leser = csv.reader (fil) for rad i leser: skriv ut (rad)
Denne modulen ligner csv.reader-modulen og brukes til å skrive data til en CSV. Det tar tre parametere:
csvfile
: Dettekanvære noe objekt med a skrive()
metode.dialekt = 'utmerker'
: En valgfri parameter som brukes til å definere et sett med parametere som er spesifikke for en bestemt CSV.fmtparam
: En valgfri parameter som kan brukes til å overstyre eksisterende formateringsparametere.DictReader og DictWriter er klasser tilgjengelig i Python for lesing og skriving til CSV. Selv om de ligner på leseren og forfatterfunksjonene, bruker disse klassene ordboksobjekter til å lese og skrive til csv-filer.
Det skaper et objekt som kartlegger informasjonen, leses inn i en ordbok hvis nøkkel er gitt av feltnavn
parameter. Denne parameteren er valgfri, men når den ikke er spesifisert i filen, blir de første raddataene nøklene til ordlisten.
Eksempel:
importer csv med åpen ('name.csv') som csvfile: leser = csv.DictReader (csvfile) for rad i leser: skriv ut (rad ['first_name'], rad ['last_name'])
Denne klassen ligner på DictWriter-klassen og gjør det motsatte, som skriver data til en CSV-fil. Klassen er definert som csv.
DictWriter
(
csvfile
,
feltnavn
,
restval ="
,
extrasaction = 'raise'
,
dialekt = 'utmerker'
,
* args
,
**
kwds
)
De feltnavn
parameter definerer sekvensen av nøkler som identifiserer rekkefølgen der verdier i ordboken er skrevet til CSV-filen. I motsetning til DictReader, er denne nøkkelen ikke valgfri og må defineres for å unngå feil når du skriver til en CSV.
En dialekt er en hjelpeklasse som brukes til å definere parametrene for en bestemt leser
eller forfatter
forekomst. Dialekter og formateringsparametere må deklareres når en leser eller forfatterfunksjon utføres.
Det finnes flere attributter som støttes av en dialekt:
''
.QUOTE_NONE
.forfatter
. Det er som standard '\ R \ n'
.'"'
.ekte
, Hvit plass umiddelbart etter delimiter blir ignorert.ekte
, Det reiser et unntak Feil på dårlig CSV-inngang.La oss se hvordan du leser en CSV-fil ved hjelp av hjelpemodulene vi har diskutert ovenfor.
Opprett din CSV-fil og lagre den som example.csv. Pass på at den har .csv
utvidelse og fyll inn noen data. Her har vi vår CSV-fil som inneholder navnene på studenter og deres karakterer.
Nedenfor er koden for å lese dataene i vår CSV ved hjelp av begge csv.reader
funksjon og csv.DictReader
klasse.
importer csv med åpen ('example.csv') som File: reader = csv.reader (Fil, delimiter = ",", quotechar = ",", citerer = csv.QUOTE_MINIMAL) for rad i leser: skriv ut
I koden ovenfor importerer vi CSV-modulen og åpner deretter vår CSV-fil som Fil
. Vi definerer leserobjektet og bruker csv.reader
metode for å trekke dataene inn i objektet. Vi deretter iterate over leser
objekt og hente hver rad av dataene våre.
Vi viser lesdataene ved å skrive ut innholdet til konsollen. Vi har også angitt de nødvendige parametrene, for eksempel avgrensning, quotechar og citerer.
Produksjon
['first_name', 'last_name', 'grade'] ['Alex', 'Brian', 'B'] ['Rachael', 'Rodriguez', 'A'] ['Tom', 'smith', 'C ']
Som nevnt ovenfor tillater DictWriter oss å lese en CSV-fil ved å kartlegge dataene i en ordbok i stedet for strenger som i tilfelle av csv.reader
modul. Selv om feltnavnet er en valgfri parameter, er det viktig å alltid ha kolonnene dine merket for lesbarhet.
Slik leser du en CSV ved hjelp av DictWriter-klassen.
importer csv results = [] med åpen ('example.csv') som File: reader = csv.DictReader (File) for rad i leser: results.append (rad) utskriftsresultater
Vi importerer først csv-modulen og initialiserer en tom liste resultater
som vi vil bruke til å lagre data hentet. Vi definerer leserobjektet og bruker csv.DictReader
metode for å trekke dataene inn i objektet. Vi deretter iterate over leser
objekt og hente hver rad av dataene våre.
Til slutt legger vi hver rad til resultatlisten og skriver ut innholdet til konsollen.
Produksjon
['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']
Som du kan se over, er det bedre å bruke DictReader-klassen fordi den gir ut dataene våre i et ordboksformat som er lettere å jobbe med.
La oss nå se hvordan du går om å skrive data til en CSV-fil ved hjelp av csv.writer
funksjon og csv.Dictwriter
klasse diskutert i begynnelsen av denne opplæringen.
Koden nedenfor skriver dataene som er definert til example2.csv
fil.
Import csv myData = [["first_name", "second_name", "Grade"], ['Alex', 'Brian', 'A'], ['Tom', 'Smith', 'B'] myFile = åpen ('example2.csv', 'w') med myFile: writer = csv.writer (myFile) writer.writerows (myData) utskrift ("Skriving fullført")
Først importerer vi csv modulen, og forfatter()
funksjonen vil skape et objekt som er egnet for skriving. For å iterere dataene over radene, må vi bruke writerows ()
funksjon.
Her er vår CSV med dataene vi har skrevet til det.
La oss skrive følgende data til en 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', 'siste navn ':' Oscar ', ' Grade ':' A ',' first_name ':' Kennzy ',' last_name ':' Tim ']
Koden er som vist nedenfor.
importer csv med åpen ('example4.csv', 'w') som 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 ("Skriving fullført")
Vi definerer først feltnavn
, som vil representere overskriftene til hver kolonne i CSV-filen. De writerrow ()
Metoden vil skrive til en rad om gangen. Hvis du vil skrive alle dataene på en gang, vil du bruke writerrows ()
metode.
Slik skriver du til alle rader samtidig.
importer csv med åpen ('example5.csv', 'w') som 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
Denne opplæringen har dekket det meste av det som kreves for å kunne lese og skrive til en CSV-fil ved hjelp av de forskjellige funksjonene og klassene som tilbys av Python. CSV-filer har blitt mye brukt i programmer, fordi de er enkle å lese og administrere, og deres lille størrelse gjør dem relativt raske til å behandle og overføre.
Ikke nøl med å se hva vi har tilgjengelig for salg og for studier på markedet, og ikke nøl med å stille spørsmål og gi din verdifulle tilbakemelding ved å bruke feedet under.
Lær Python med vår komplette pythonveiledning, enten du er bare i gang eller du er en erfaren coder som ønsker å lære nye ferdigheter..