Pytonorm

CSV-filhantering i Python

CSV-filhantering i Python
I det här ämnet ska vi lära oss hur man läser och skriver CSV-filer i python.

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 csv-fil

Inbyggd metod open () används.

Ex:

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 csv
med ö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 csv
med ö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 csv
head_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 csv
med ö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 csv
med ö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.

Bästa Linux Distros för spel 2021
Linux-operativsystemet har kommit långt från sitt ursprungliga, enkla, serverbaserade utseende. Detta operativsystem har förbättrats enormt de senaste...
Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...
Bästa spel att spela med handspårning
Oculus Quest introducerade nyligen den fantastiska idén om handspårning utan kontroller. Med ett ständigt ökande antal spel och aktiviteter som utför ...