CSV-failivormingut kasutatakse kõige sagedamini andmebaaside ja arvutustabelite hooldamiseks. CSV-faili esimest rida kasutatakse kõige sagedamini veeruväljade määratlemiseks, ülejäänud ridu loetakse ridadeks. See struktuur võimaldab kasutajatel esitada tabeliandmeid CSV-failide abil. CSV-faile saab muuta mis tahes tekstiredaktoris. Kuid sellised rakendused nagu LibreOffice Calc pakuvad täiustatud redigeerimisvahendeid, sortimis- ja filtreerimisfunktsioone.
Andmete lugemine CSV-failidest Pythoni abil
Pythoni CSV-moodul võimaldab teil lugeda, kirjutada ja manipuleerida mis tahes CSV-failidesse salvestatud andmetega. CSV-faili lugemiseks peate kasutama Pythoni standardses teegis sisalduvat moodulit “lugeja” Pythoni moodulist “csv”.
Mõelge, et teil on CSV-fail, mis sisaldab järgmisi andmeid:
Mango, banaan, õun, apelsin50,70,30,90
Faili esimene rida määratleb iga veeru kategooria ja sel juhul puuviljade nimed. Teine rida salvestab väärtused iga veeru alla (varud käes). Kõik need väärtused on eraldatud komaga. Kui peaksite selle faili avama arvutustabeli rakenduses nagu LibreOffice Calc, näeks see välja järgmine:
Nüüd lugege väärtusi lehelt “puuviljad.csv ”faili kasutades Pythoni“ csv ”moodulit, peate kasutama meetodit“ lugeja ”järgmises vormingus:
import csvavatud ("puuviljad.csv ") failina:
data_reader = csv.lugeja (fail)
reale data_reader:
print (rida)
Ülaltoodud valimi esimene rida impordib mooduli “csv”. Järgmisena kasutatakse lauset “avatud”, et kõvakettale salvestatud fail turvaliselt avada (“puuviljad.csv ”(antud juhul). Uus objekt „data_reader” luuakse kutsudes moodulist „csv” meetod „reader”. See “lugeja” meetod võtab failinime kohustusliku argumendina, seega viide “puuviljadele”.csv ”edastatakse sellele. Järgmisena käivitatakse tsükli lause “for”, et printida kõik read “puuviljadest”.csv ”fail. Pärast ülalnimetatud koodinäidise käivitamist peaksite saama järgmise väljundi:
['50', '70', '30', '90']Kui soovite väljundile määrata reanumbrid, võite kasutada funktsiooni „loendada”, mis määrab iteratsiooni igale üksusele numbri (alates 0-st, kui seda ei muudeta).
import csvavatud ("puuviljad.csv ") failina:
data_reader = csv.lugeja (fail)
indeksi jaoks, rida loendis (data_reader):
print (register, rida)
Muutuja “indeks” hoiab iga elemendi arvu. Pärast ülalnimetatud koodinäidise käivitamist peaksite saama järgmise väljundi:
0 ['Mango', 'banaan', 'õun', 'apelsin']1 ['50', '70', '30', '90']
Kuna faili „csv” esimene rida sisaldab tavaliselt veerupäiseid, saate nende pealkirjade väljavõtmiseks kasutada funktsiooni „loendada”:
import csvavatud ("puuviljad.csv ") failina:
data_reader = csv.lugeja (fail)
indeksi jaoks, rida loendis (data_reader):
kui indeks == 0:
pealkirjad = rida
print (pealkirjad)
Eespool oleva lause lause „kui” kontrollib, kas indeks on võrdne nulliga („puuviljade esimene rida”).csv ”fail). Kui jah, siis määratakse muutuja „rida” väärtus uuele „pealkirja” muutujale. Pärast ülaltoodud koodiproovi käivitamist peaksite saama järgmise väljundi:
['Mango', 'banaan', 'õun', 'apelsin']Pange tähele, et „csv.lugeja ”meetod, kasutades valikulist eraldaja argumenti järgmises vormingus:
import csvavatud ("puuviljad.csv ") failina:
data_reader = csv.lugeja (fail, eraldaja = ";")
reale data_reader:
print (rida)
Kuna csv-failis on iga veerg seotud rea väärtustega, võiksite csv-failist andmeid lugedes luua Pythoni „sõnaraamatu” objekti. Selleks peate kasutama meetodit “DictReader”, nagu on näidatud allolevas koodis:
import csvavatud ("puuviljad.csv ") failina:
data_reader = csv.DictReader (fail)
reale data_reader:
print (rida)
Pärast ülalnimetatud koodinäidise käivitamist peaksite saama järgmise väljundi:
'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'Nii et nüüd on teil sõnaraamatu objekt, mis seob üksikud veerud nende vastavate väärtustega ridades. See töötab hästi, kui teil on ainult üks rida. Oletame, et “viljad.fail csv ”sisaldab nüüd täiendavat rida, mis täpsustab, mitu päeva kulub puuviljavarude hävimisele.
Mango, banaan, õun, apelsin50,70,30,90
3,1,6,4
Kui teil on mitu rida, annab sama koodinäidise käivitamine erineva väljundi.
'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90''Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'
See ei pruugi olla ideaalne, sest võiksite Pythoni sõnastikus kaardistada kõik ühe veeru väärtused ühte võtmeväärtuste paari. Proovige selle asemel selle koodi näidist:
import csvavatud ("puuviljad.csv ") failina:
data_reader = csv.DictReader (fail)
data_dict =
reale data_reader:
võtme jaoks väärtus reas.üksused ():
data_dict.setdefault (võti, [])
data_dict [võti].lisa (väärtus)
print (data_dict)
Pärast ülalnimetatud koodinäidise käivitamist peaksite saama järgmise väljundi:
'Mango': ['50', '3'], 'banaan': ['70', '1'], 'õun': ['30', '6'], 'oranž': ['90 ',' 4 ']Silmust “for” kasutatakse objekti “DictReader” igal elemendil, et liikuda üle võtme-väärtuse paaride. Enne seda on määratletud uus Pythoni sõnaraamatu muutuja “data_dict”. See salvestab andmete lõplikud vastendused. Teise silmuseploki “for” all kasutatakse Pythoni sõnaraamatu meetodit “setdefault”. See meetod määrab sõnastiku võtmele väärtuse. Kui võtme-väärtuste paari pole olemas, luuakse määratud argumentidest uus. Nii et sel juhul määratakse võtmele uus tühi loend, kui seda pole veel olemas. Lõpuks lisatakse "väärtus" vastavasse võtmesse viimases objektis "data_dict".
Andmete kirjutamine CSV-faili
Andmete kirjutamiseks „csv” -faili peate kasutama mooduli „csv” meetodit “kirjanik”. Allpool toodud näide lisab olemasolevatele puuviljadele uue rea.csv ”fail.
import csvavatud ("puuviljad.csv "," a ") failina:
data_writer = csv.kirjanik (fail)
andmete kirjutaja.kirjutaja ([3,1,6,4])
Esimene lause avab faili režiimis "Lisa", mida tähistatakse argumendiga "a". Järgmisena nimetatakse “kirjaniku” meetodit ja viidet “viljadele.fail csv ”edastatakse talle argumendina. Meetod “writow” kirjutab faili uue rea või lisab selle.
Kui soovite teisendada Pythoni sõnaraamatu failiks csv ja salvestada väljund csv-faili, proovige järgmist koodi:
import csvavatud ("puuviljad.csv "," w ") failina:
päised = ["Mango", "Banaan", "Õun", "Apelsin"]
data_writer = csv.DictWriter (fail, väljanimed = päised)
andmete kirjutaja.kirjutuspäis ()
andmete kirjutaja.writerow ("Mango": 50, "Banaan": 70, "Apple": 30, "Oranž": 90)
andmekirjutaja.writerow ("Mango": 3, "Banaan": 1, "Apple": 6, "Orange": 4)
Pärast tühja “puuviljade avamist.csv ”faili, kasutades lauset“ avatud ”, määratletakse uus muutuja“ pealkirjad ”, mis sisaldab veerupäiseid. Uus objekt "data_writer" luuakse, kutsudes meetodi "DictWriter" ja edastades selle viite "puuviljadele".csv ”fail ja argument“ fieldnames ”. Järgmisel real kirjutatakse veeru pealkirjad faili, kasutades meetodit “kirjutusrida”. Kaks viimast lauset lisavad eelmises etapis loodud vastavatele päistele uued read.
Järeldus
CSV-failid pakuvad hõlpsat viisi andmete kirjutamiseks tabelina. Pythoni sisseehitatud „csv” moodul võimaldab hõlpsalt „csv” failides saadaolevaid andmeid käsitleda ja sellel täiendavat loogikat rakendada.