CSV -filhåndtering i Python

CSV -filhåndtering i Python
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.