Definition: CSV (kommaseparerat värde) liknar en textfil där lagrad data separeras av någon avgränsare (vanligtvis ett komma). Varje fält avgränsas av en avgränsare. I Python bearbetas CSV-filer med hjälp av CSV-modulen. Så vi måste importera den här modulen.
Ex: importera csv
Nedanstående exempel visar hur data lagras i en CSV-fil. Här används ett komma som avgränsare.
Filnamn: person_info.csv
förnamn, mellannamn, efternamn, ålder
Anand, kumar, matematik, 31
Sachin, ramesh, tendulakar, 40
Virendra, sehwag, singh, 38
Rahul, dravid, xyz, 40
CSV-filen kan öppnas i något av följande lägen:
r -> läsläge
w -> skrivläge
a -> lägg till läge
I Python utförs en filåtgärd i följande ordning:
- Öppna en fil;
- Läs, skriv eller lägg till. När vi anger skrivläge öppnas filen i skrivläge om filen finns, annars skapar den en fil. Detta gäller även för append-läge. I läsläge, om en fil finns, öppnar den filen i läsläge, annars kastar FileNotFoundError undantag; och
- Stäng filen.
Öppna en csv-fil
Inbyggd metod open () används.
Ex:
- f = open (“filnamn.csv ”,” r ”) # I csv är python som standard läsläge
- f = open (“filnamn.csv ”, 'w') # skrivläge
Stänga en fil
Inbyggd metod close () används.
fp = open ("filnamn.csv "," w ")# utför vissa filåtgärder
fp.stänga()
Filhantering med med
Det bästa sättet att utföra CSV-filhantering och den vanligaste metoden är med uttalandet. Med detta säkerställs att filen stängs när blocket inuti med avslutas.
Ex:
med öppen ('filnamn.csv ',' w ', kodning =' utf-8 ') som fp:# utför vissa filåtgärder
#statements utanför med blocket
När vi avslutar med blockering stängs filen automatiskt.
Skriv till en CSV-fil
För att skriva in i en CSV-fil måste vi öppna den i skriv 'w' eller lägga till 'a' -läge.
I exemplet nedan ska vi läsa från en fil och skriva till en ny fil.
importera csvmed öppen ('filnamn.csv ',' r ') som fp:
läsare = csv.läsare (fp) #read-fil
med öppen ('newfilename.csv ',' w ') som fq:
författare = csv.författare (fq, avgränsare = '-')
för rad i läsaren: # För att itrera över varje rad
författare.writerow (line) #write line till ny fil
Använda ordboksförfattare
I exemplet nedan kommer vi att läsa från en fil och skriva till en ny fil med DictWriter () -metoden.
importera csvmed öppen ('filnamn.csv ',' r ') som fp:
läsare = csv.DictReader (fp) #read-fil
med öppen ('newfilename.csv ',' w ', newline = ") som fq: #newline =" för att undvika att lägga till extra ny rad
row_names = ['first name', 'mellannamn', 'efternamn', 'age']
författare = csv.DictWriter (fq, fältnamn = radnamn, avgränsare = '-')
författare.skrivhuvud () # skriv rubrikrader
för rad i läsaren:
författare.writerow (rad)
Författare ()
Denna metod skriver flera rader åt gången; vi måste skicka en lista med listor. Ex:
importera csvhead_names = ['förnamn', 'mellannamn', 'efternamn', 'ålder']
# datarader med csv-fil
rader = [['Anand', 'kumar', 'matematik', 31],
['Sachin', 'ramesh', 'tendulakar', 40],
['Virendra', 'sehwag', 'singh', 38],
['Rahul', 'dravid', 'xyz', 40]]
# skriver till csv-fil
med öppen ('newfilename.csv ',' w ') som fp:
# skapa ett CSV-författarobjekt
csvwriter = csv.författare (fp)
# skriv rubriken
csvwriter.författare (huvudnamn)
# skriv dataraderna
csvwriter.writerows (rader)
Läser från filen
För att läsa CSV-filen i Python måste vi öppna filen i läsläge 'r'. Ex:
importera csvmed öppen ('filnamn.csv ',' r ') som fp:
data = csv.läsare (fp)
#default avgränsare är komma, om csv åtskilda av andra avgränsare måste ange
#Ex data = csv.läsare (fp, avgränsare = '-')
skriv ut (data) # it returnera objekt
#hoppar rubriken
nästa (data) #call nästa metod för generator
för rad i data: # För att itera över varje rad
skriv ut (rad) # skriv ut varje värde i en lista
fp.sök (0) # ta markören till första raden
för rad i data:
skriv ut (rad [0]) # skriv endast förnamn
Använda ordlistaläsare
Att läsa csv-fil med DictReader () -metoden.
importera csvmed öppen ('filnamn.csv ',' r ') som fp:
läsare = csv.DictReader (fp) #read-fil
för rad i läsaren:
skriv ut (rad) # skriv ut varje rad i form av diktinär
fp.sök (0) # ta markören till första raden
för data i läsaren:
print (data ['age']) # vi kan bara skriva ut age med hjälp av 'age' -tangenten
Slutsats
Vi har lärt oss hur man läser och skriver en fil med hjälp av CSV-modulen. CSV-fil är det mest använda filformatet i automationsbranschen eftersom det är lätt att läsa och ändra data. Pandas är också en annan metod som vi kan använda för att bearbeta CSV-filer.