Definitie: CSV (door komma's gescheiden waarde) is vergelijkbaar met een tekstbestand waarin opgeslagen gegevens worden gescheiden door een scheidingsteken (meestal een komma). Elk veld wordt gescheiden door een scheidingsteken. In Python worden CSV-bestanden verwerkt met behulp van de CSV-module. We moeten deze module dus importeren.
Ex: csv-importeren
Het onderstaande voorbeeld laat zien hoe de gegevens worden opgeslagen in een CSV-bestand. Hier wordt een komma gebruikt als scheidingsteken.
Bestandsnaam: person_info.csv
voornaam, middelste naam, achternaam, leeftijd
Anand,kumar,wiskunde,31
Sachin, ramesh, tendulakar, 40
Virendra,sehwag,singh,38
Rahul,dravid,xyz,40
CSV-bestand kan in een van de volgende modi worden geopend:
r -> leesmodus
w -> schrijfmodus
a -> toevoegmodus
In Python wordt een bestandsbewerking in de volgende volgorde uitgevoerd:
- Een bestand openen;
- Lezen, schrijven of toevoegen. Wanneer we de schrijfmodus specificeren, wordt het bestand geopend in de schrijfmodus als het bestand bestaat, anders gaat het een bestand maken. Dit is ook van toepassing op de append-modus. Als er in de leesmodus een bestand bestaat, wordt het bestand in de leesmodus geopend, anders wordt de FileNotFoundError-uitzondering gegenereerd; en
- Sluit het bestand.
Open een csv-bestand
Ingebouwde methode open() wordt gebruikt.
Ex:
- f = open(“bestandsnaam.csv”,”r”) # In csv is python standaard leesmodus
- f = open(“bestandsnaam.csv”,'w') # schrijfmodus
Een bestand sluiten
Ingebouwde methode close() wordt gebruikt.
fp = open("bestandsnaam.csv",'w')# voer enkele bestandsbewerkingen uit
fp.dichtbij()
Bestandsbewerkingen gebruiken met
De beste manier om CSV-bestandsbewerkingen uit te voeren, en de meest gebruikte methode, is met de instructie. Als u dit gebruikt, zorgt u ervoor dat het bestand wordt gesloten wanneer het blok binnen met wordt afgesloten.
Ex:
met open('bestandsnaam.csv', 'w', encoding = 'utf-8') als fp:#voer enkele bestandsbewerkingen uit
#statements buiten het met blok
Wanneer we afsluiten met blok, wordt het bestand automatisch gesloten.
Schrijf naar een CSV-bestand
Om naar een CSV-bestand te schrijven, moeten we het openen in de schrijfmodus 'w' of 'a' toevoegen.
In het onderstaande voorbeeld gaan we uit het ene bestand lezen en naar een nieuw bestand schrijven.
import csvmet open('bestandsnaam.csv','r') als fp:
lezer = csv.reader(fp)#lees bestand
met open('nieuwebestandsnaam.csv','w') als fq:
schrijver = csv.schrijver(fq, scheidingsteken = '-')
voor regel in lezer:#Om elke rij te herhalen
auteur.writerow(line)#write regel naar nieuw bestand
Woordenboekschrijver gebruiken
In het onderstaande voorbeeld gaan we uit het ene bestand lezen en naar een nieuw bestand schrijven met behulp van de DictWriter()-methode.
import csvmet open('bestandsnaam.csv','r') als fp:
lezer = csv.DictReader(fp)#bestand lezen
met open('nieuwebestandsnaam.csv','w',newline=") as fq:#newline ="om te voorkomen dat er een extra nieuwe regel wordt toegevoegd
row_names = ['voornaam','middle name','achternaam','leeftijd']
schrijver = csv.DictWriter(fq, veldnamen = rijnamen, scheidingsteken = '-')
auteur.writeheader()#write kopregels
voor line-in-lezer:
auteur.schrijfrij (regel)
Schrijfrijen()
Deze methode schrijft meerdere rijen tegelijk; we moeten een lijst met lijsten doorgeven. Ex:
import csvhead_names = ['voornaam','middle name','achternaam','leeftijd']
# gegevensrijen van csv-bestand
rijen = [['Anand','kumar','wiskunde',31],
['Sachin','ramesh', 'tendulakar',40],
['Virendra','sehwag','singh',38],
['Rahul','dravid','xyz',40]]
# schrijven naar csv-bestand
met open('nieuwebestandsnaam.csv', 'w') als fp:
# een csv-schrijverobject maken
csvwriter = csv.schrijver (fp)
# schrijf de kop
csvschrijver.schrijfrij(head_names)
# schrijf de gegevensrijen
csvschrijver.schrijfrijen (rijen)
Lezen uit bestand
Om het CSV-bestand in Python te lezen, moeten we het bestand openen in leesmodus 'r'. Ex:
import csvmet open('bestandsnaam.csv','r') als fp:
data = csv.lezer (fp)
#default scheidingsteken is een komma, als csv gescheiden door een ander scheidingsteken moet worden gespecificeerd
#Ex-gegevens = csv.lezer(fp, scheidingsteken = '-')
print(data) # it return object
#koptekst overslaan
next(data)#call next methode van generator
voor regel in gegevens:#Om elke rij te herhalen
print(line) # print elke waarde in een lijst
fp.seek(0)# breng cursor naar eerste regel
voor line-in-gegevens:
print(line[0])# print alleen voornamen
Woordenboeklezer gebruiken
Csv-bestand lezen met de DictReader()-methode.
import csvmet open('bestandsnaam.csv','r') als fp:
lezer = csv.DictReader(fp)#bestand lezen
voor line-in-lezer:
print(line)#print elke rij in de vorm van een woordenboek
fp.seek(0)# breng cursor naar eerste regel
voor gegevens in lezer:
print(data['age'])#we kunnen alleen de leeftijd afdrukken door de 'age'-toets te gebruiken
Conclusie
We hebben geleerd hoe we een bestand kunnen lezen en schrijven met behulp van de CSV-module. CSV-bestand is het meest gebruikte bestandsformaat in de automatiseringsindustrie omdat het gemakkelijk is om de gegevens te lezen en aan te passen. Pandas is ook een andere methode die we kunnen gebruiken om CSV-bestanden te verwerken.