Definition: CSV (komma-separeret værdi) svarer til en tekstfil, hvor data, der er gemt, adskilles af en eller anden afgrænser (normalt et komma). Hvert felt er adskilt af en afgrænser. I Python behandles CSV-filer ved hjælp af CSV-modulet. Så vi er nødt til at importere dette modul.
Eks: import csv
Nedenstående eksempel viser, hvordan dataene er gemt i en CSV-fil. Her bruges et komma som en afgrænser.
Filnavn: person_info.csv
fornavn, mellemnavn, efternavn, alder
Anand, kumar, matematik, 31
Sachin, ramesh, tendulakar, 40
Virendra, sehwag, singh, 38
Rahul, dravid, xyz, 40
CSV-fil kan åbnes i en af følgende tilstande:
r -> læsetilstand
w -> skrivetilstand
a -> tilføj tilstand
I Python udføres en filhandling i følgende rækkefølge:
- Åbn en fil;
- Læs, skriv eller tilføj. Når vi angiver skrivetilstand, åbnes filen i skrivetilstand, hvis filen findes, ellers opretter den en fil. Dette gælder også for append-tilstand. I læsetilstand, hvis der findes en fil, vil den åbne filen i læsetilstand, ellers kaster den FileNotFoundError undtagelse; og
- Luk filen.
Åbn en csv-fil
Den indbyggede metode åben () bruges.
Eks:
- f = open (“filnavn.csv ”,” r ”) # I csv er python standard læsetilstand
- f = open (“filnavn.csv ”, 'w') # skrivetilstand
Lukning af en fil
Indbygget metode close () bruges.
fp = open ("filnavn.csv ", 'w')# udfør nogle filhandlinger
fp.tæt()
Filhandlinger ved hjælp af med
Den bedste måde at udføre CSV-filhandling på, og den mest anvendte metode, er med udsagnet. Brug af dette sikrer, at filen lukkes, når blokken inde med afsluttes.
Eks:
med åben ('filnavn.csv ',' w ', kodning =' utf-8 ') som fp:# udfør nogle filhandlinger
#statements uden for med blokken
Når vi afslutter med blok, lukkes filen automatisk.
Skriv til en CSV-fil
For at skrive til en CSV-fil skal vi åbne den i skriv 'w' eller tilføj 'a' -tilstand.
I nedenstående eksempel skal vi læse fra en fil og skrive til en ny fil.
importer csvmed åben ('filnavn.csv ',' r ') som fp:
læser = csv.læser (fp) #read-fil
med åben ('newfilename.csv ',' w ') som fq:
forfatter = csv.forfatter (fq, afgrænser = '-')
til linje i læser: #To iterrate over each row
forfatter.writerow (line) #write line til ny fil
Brug af ordbogsforfatter
I nedenstående eksempel skal vi læse fra en fil og skrive til en ny fil ved hjælp af DictWriter () -metoden.
importere csvmed åben ('filnavn.csv ',' r ') som fp:
læser = csv.DictReader (fp) #read-fil
med åben ('newfilename.csv ',' w ', newline = ") som fq: #newline =" for at undgå at tilføje ekstra ny linje
row_names = ['fornavn', 'mellemnavn', 'efternavn', 'alder']
forfatter = csv.DictWriter (fq, fieldnames = row_names, delimiter = '-')
forfatter.skrivehoved () # skriv overskriftslinjer
til linje i læser:
forfatter.writerow (linje)
Writerows ()
Denne metode skriver flere rækker ad gangen; vi er nødt til at sende en liste over lister. Eks:
importer csvhead_names = ['fornavn', 'mellemnavn', 'efternavn', 'alder']
# datarækker med csv-fil
rækker = [['Anand', 'kumar', 'matematik', 31],
['Sachin', 'ramesh', 'tendulakar', 40],
['Virendra', 'sehwag', 'singh', 38],
['Rahul', 'dravid', 'xyz', 40]]
# skriver til csv-fil
med åben ('newfilename.csv ',' w ') som fp:
# opretter et csv-skribentobjekt
csvwriter = csv.forfatter (fp)
# skriv overskriften
csvwriter.forfatter (hovednavn)
# skriv datarækkerne
csvwriter.writerows (rækker)
Læsning fra fil
For at læse CSV-filen i Python skal vi åbne filen i læsningstilstand 'r'. Eks:
importere csvmed åben ('filnavn.csv ',' r ') som fp:
data = csv.læser (fp)
#default afgrænsning er komma, hvis csv adskilt af anden afgrænser skal specificeres
#Ex data = csv.læser (fp, afgrænser = '-')
udskriv (data) # it returnerer objekt
# springer over overskriften
næste (data) #call næste metode til generator
for linje i data: #To iterrate over each row
udskriv (linje) # udskriv hver værdi på en liste
fp.søg (0) # bringer markøren til første linje
for line in data:
udskriv (linje [0]) # udskriv kun fornavne
Brug af ordbogslæser
For at læse csv-fil ved hjælp af DictReader () -metoden.
importere csvmed åben ('filnavn.csv ',' r ') som fp:
læser = csv.DictReader (fp) #read-fil
til linje i læser:
udskriv (linje) # udskriv hver række i form af diktar
fp.søg (0) # bringer markøren til første linje
til data i læser:
print (data ['age']) # vi kan kun udskrive age ved hjælp af 'age' -tasten
Konklusion
Vi har lært, hvordan man læser og skriver en fil ved hjælp af CSV-modulet. CSV-fil er det mest anvendte filformat i automatiseringsindustrien, fordi det er let at læse og ændre dataene. Pandas er også en anden metode, vi kan bruge til at behandle CSV-filer.