Definisjon: CSV (kommaseparert verdi) ligner på en tekstfil der lagrede data er atskilt med en avgrenser (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: importere csv
Eksemplet nedenfor viser hvordan dataene lagres i en CSV-fil. Her brukes komma som skilletegn.
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-filen kan åpnes i en av følgende moduser:
r -> lesemodus
w -> skrivemodus
a -> legg til modus
I Python utføres en filoperasjon i følgende rekkefølge:
- Åpne en fil;
- Les, skriv eller legg til. Når vi spesifiserer skrivemodus, vil filen åpnes i skrivemodus hvis filen eksisterer, ellers vil den opprette en fil. Dette gjelder også for append-modus. I lesemodus, hvis en fil eksisterer, vil den åpne filen i lesemodus, ellers kaster den FileNotFoundError unntak; og
- Lukk filen.
Åpne en csv-fil
Innebygd metode åpen () brukes.
Eks:
- f = open (“filnavn.csv ”,” r ”) # I csv er python standard lesemodus
- f = open (“filnavn.csv ”, 'w') # skrivemodus
Lukke en fil
Innebygd metode close () brukes.
fp = open ("filnavn.csv ", 'w')# utføre noen filoperasjoner
fp.Lukk()
Filoperasjoner ved hjelp av med
Den beste måten å utføre CSV-filoperasjon på, og den mest brukte metoden, er med uttalelsen. Bruk av dette sikrer at filen lukkes når blokken inne med avsluttes.
Eks:
med åpen ('filnavn.csv ',' w ', koding =' utf-8 ') som fp:# utføre noen filoperasjoner
# uttalelser utenfor med blokken
Når vi avslutter med blokkering, lukkes filen automatisk.
Skriv til en CSV-fil
For å skrive inn i en CSV-fil, må vi åpne den i skriv 'w' eller legge til 'a' -modus.
I eksemplet nedenfor skal vi lese fra en fil og skrive til en ny fil.
importere csvmed åpen ('filnavn.csv ',' r ') som fp:
leser = csv.reader (fp) #read-fil
med åpen ('newfilename.csv ',' w ') som fq:
skribent = csv.skribent (fq, avgrenser = '-')
for linje i leser: #To iterrate over each row
forfatter.writerow (linje) #skriv linje til ny fil
Bruker ordboksforfatter
I eksemplet nedenfor skal vi lese fra en fil og skrive til en ny fil ved hjelp av DictWriter () -metoden.
importere csvmed å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', 'alder']
skribent = csv.DictWriter (fq, feltnavn = radnavn, skilletegn = '-')
forfatter.skrivehode () # skriv overskriftslinjer
for linje i leser:
forfatter.writerow (linje)
Skribenter ()
Denne metoden skriver flere rader om gangen; vi trenger å sende en liste med lister. Eks:
importere csvhead_names = ['fornavn', 'mellomnavn', 'etternavn', 'alder']
# datarader med csv-fil
rader = [['Anand', 'kumar', 'matematikk', 31],
['Sachin', 'ramesh', 'tendulakar', 40],
['Virendra', 'sehwag', 'singh', 38],
['Rahul', 'dravid', 'xyz', 40]]
# skriver til csv-fil
med åpen ('newfilename.csv ',' w ') som fp:
# oppretter et csv-skribentobjekt
csvwriter = csv.forfatter (fp)
# skriv overskriften
csvwriter.writerow (head_names)
# skriv dataradene
csvwriter.writerows (rader)
Lese fra fil
For å lese CSV-filen i Python, må vi åpne filen i lesemodus 'r'. Eks:
importere csvmed åpen ('filnavn.csv ',' r ') som fp:
data = csv.leser (fp)
#default skilletegn er komma, hvis csv atskilt med annen skilletegn må spesifiseres
#Ex data = csv.leser (fp, avgrenser = '-')
skriv ut (data) # det returnerer objektet
#hopp over overskriften
neste (data) #call neste metode for generator
for linje i data: #To iterrate over each row
skriv ut (linje) # skriv ut hver verdi i en liste
fp.søk (0) # bringe markøren til første linje
for line in data:
skriv ut (linje [0]) # skriv bare fornavn
Bruke ordbokleser
Å lese csv-fil ved hjelp av DictReader () -metoden.
importere csvmed åpen ('filnavn.csv ',' r ') som fp:
leser = csv.DictReader (fp) #read-fil
for linje i leser:
print (line) #print hver rad i form av diktar
fp.søk (0) # bringe markøren til første linje
for data i leseren:
print (data ['age']) # vi kan bare skrive ut alder ved å bruke 'age' -tasten
Konklusjon
Vi har lært å lese og skrive en fil ved hjelp av CSV-modulen. CSV-fil er det mest brukte filformatet i automatiseringsindustrien fordi det er enkelt å lese og endre dataene. Pandas er også en annen metode vi kan bruke til å behandle CSV-filer.