I dette emnet skal vi lære å lese og skrive CSV -filer i Python.
Definisjon: CSV (komma -separert verdi) ligner på en tekstfil der lagret data er atskilt av en eller annen avgrensning (vanligvis et komma). Hvert felt er atskilt med en avgrenser. I Python behandles CSV -filer ved hjelp av CSV -modulen. Så vi må importere denne modulen.
Eks: Importer CSV
Eksemplet nedenfor viser hvordan dataene lagres i en CSV -fil. Her brukes et komma som en avgrenser.
Filnavn: Person_info.CSV
Fornavn, mellomnavn, etternavn, alder
Anand, Kumar, matematikk, 31
Sachin, Ramesh, Tendulakar, 40
Virendra, Sehwag, Singh, 38
Rahul, Dravid, Xyz, 40
CSV -fil kan åpnes i en av følgende modus:
R -> Lesmodus
W -> Skrivmodus
A -> vedleggsmodus
I Python utføres en filoperasjon i følgende rekkefølge:
- Åpne en fil;
- Lese, skrive eller legge til. Når vi spesifiserer skrivemodus, åpnes filen i skrivemodus hvis filen eksisterer, ellers vil den opprette en fil. Dette er også aktuelt for vedleggsmodus. I lesemodus, hvis det eksisterer en fil, vil den åpne filen i lesemodus, ellers kaster den FileNotFoundError unntak; og
- Lukk filen.
Åpne en CSV -fil
Innebygd metode åpen () brukes.
Eks:
- F = Åpne (“Filnavn.CSV ”,” R ”) # I CSV Python er standard lesemodus
- F = Åpne (“Filnavn.CSV ”, 'W') # Skrivemodus
Lukke en fil
Innebygd metode lukk () brukes.
FP = åpen ("Filnavn.CSV ", 'W')
# Utfør noen filoperasjoner
fp.Lukk()
Filoperasjoner bruker med
Den beste måten å utføre CSV -fildrift, og den mest brukte metoden, er med uttalelsen. Å bruke dette sikrer at filen er lukket når blokken inne med er forlatt.
Eks:
med åpen ('filnavn.csv ',' w ', koding =' utf-8 ') som fp:
#Perform noen filoperasjoner
#Statinger utenfor med blokken
Når vi avslutter med blokkering, vil filen bli lukket automatisk.
Skriv til en CSV -fil
For å skrive inn i en CSV -fil, må vi åpne den i skrive 'W' eller legge til 'A' -modus.
I eksemplet nedenfor skal vi lese fra en fil og skrive til en ny fil.
Importer CSV
med åpen ('filnavn.csv ',' r ') som fp:
Leser = CSV.Leser (FP) #Read -fil
med åpen ('newfilename.CSV ',' W ') som FQ:
Forfatter = CSV.skribent (fq, avgrensning = '-')
for linje i leseren:#til iterrate over hver rad
forfatter.Writerow (linje) #write line til ny fil
Bruker ordbokforfatter
I eksemplet nedenfor skal vi lese fra en fil og skrive til en ny fil ved hjelp av DictWriter () -metoden.
Importer CSV
med åpen ('filnavn.csv ',' r ') som fp:
Leser = CSV.DicTreader (FP) #Read -fil
med åpen ('newfilename.csv ',' w ', newline = ") som fq: #newline =" for å unngå å legge til ekstra ny linje
ROW_NAMES = ['Fornavn', 'mellomnavn', 'etternavn', 'Age']
Forfatter = CSV.Dictwriter (FQ, FieldNames = Row_Names, Delimiter = '-')
forfatter.WritHeader ()#Skriv overskriftslinjer
for linje i leseren:
forfatter.Writerow (linje)
Writerows ()
Denne metoden skriver flere rader om gangen; Vi må passere en liste over lister. Eks:
Importer CSV
head_names = ['fornavn', 'mellomnavn', 'etternavn', 'alder']
# Data rader med CSV -fil
Rader = [['Anand', 'Kumar', 'Math', 31],
['Sachin', 'Ramesh', 'Tendulakar', 40],
['Virendra', 'Sehwag', 'Singh', 38],
['Rahul', 'Dravid', 'Xyz', 40]]
# Skriving til CSV -fil
med åpen ('newfilename.csv ',' w ') som fp:
# Opprette et CSV -forfatterobjekt
CSVWriter = CSV.Forfatter (FP)
# Skriv overskriften
CSVWriter.Writerow (head_names)
# Skriv dataradene
CSVWriter.Writerows (rader)
Lesing fra filen
For å lese CSV -filen i Python, må vi åpne filen i lesemodus 'r'. Eks:
Importer CSV
med åpen ('filnavn.csv ',' r ') som fp:
data = CSV.Leser (FP)
#Default Delimiter er komma, hvis CSV er atskilt med annen avgrensning trenger å spesifisere
#Ex data = CSV.Leser (FP, avgrensning = '-')
skrive ut (data) # det returnerer objekt
#skipping overskriften
Neste (data) #Call neste generatormetode
For linje i data:#til iterrate over hver rad
skrive ut (linje) # Skriv ut hver verdi i en liste
fp.Søk (0)# Ta markøren til første linje
for linje i data:
skrive ut (linje [0])# skriv ut bare fornavn
Bruker ordbokleser
Å lese CSV -fil ved hjelp av DiCTReader () -metoden.
Importer CSV
med åpen ('filnavn.csv ',' r ') som fp:
Leser = CSV.DicTreader (FP) #Read -fil
for linje i leseren:
trykk (linje) #trykk hver rad i form av diktering
fp.Søk (0)# Ta markøren til første linje
For data i leseren:
skrive ut (data ['alder'])#vi kan bare skrive ut alder ved å bruke 'alder' -nøkkel
Konklusjon
Vi har lært å lese og skrive en fil ved hjelp av CSV -modulen. CSV -fil er det mest brukte filformatet i automatiseringsbransjen fordi det er lett å lese og endre dataene. Pandas er også en annen metode vi kan bruke til å behandle CSV -filer.