„Python“

Kaip tvarkyti CSV failus „Python“

Kaip tvarkyti CSV failus „Python“
Šiame straipsnyje bus aprašyta „csv“ failų naudojimo naudojant „Python“ pamoka. Terminas „csv“ reiškia „kableliais atskirtos vertės“, kur kiekvienoje eilutėje arba eilutėje yra kableliais atskirtos teksto vertės. Kai kuriais atvejais reikšmėms atskirti vietoj „kablelis“ taip pat naudojamas „kabliataškis“. Tačiau tai neturi didelio skirtumo failo formato taisyklėms, o logika tvarkyti abiejų tipų separatorius išlieka ta pati.

CSV failo formatas dažniausiai naudojamas duomenų bazėms ir skaičiuoklėms palaikyti. Pirmoji CSV failo eilutė dažniausiai naudojama stulpelių laukams apibrėžti, o visos likusios eilutės laikomos eilėmis. Ši struktūra leidžia vartotojams pateikti lentelių duomenis naudojant CSV failus. CSV failus galima redaguoti bet kuriame teksto rengyklėje. Tačiau tokios programos kaip „LibreOffice Calc“ teikia pažangius redagavimo įrankius, rūšiavimo ir filtravimo funkcijas.

Duomenų skaitymas iš CSV failų naudojant „Python“

„Python“ CSV modulis leidžia jums skaityti, rašyti ir tvarkyti visus duomenis, saugomus CSV failuose. Norėdami skaityti CSV failą, turėsite naudoti „Reader“ metodą iš „Python“ „csv“ modulio, kuris yra įtrauktas į „Python“ standartinę biblioteką.

Mano, kad turite CSV failą, kuriame yra šie duomenys:

Mango, bananas, obuolys, apelsinas
50,70,30,90

Pirmoje failo eilutėje apibrėžta kiekviena stulpelio kategorija, šiuo atveju vaisių pavadinimas. Antroje eilutėje vertės kaupiamos kiekviename stulpelyje (atsargos). Visos šios reikšmės yra atskirtos kableliu. Jei atidarytumėte šį failą skaičiuoklės programoje, pvz., „LibreOffice Calc“, tai atrodytų taip:

Dabar skaityti vertybes iš „vaisių.csv “failą naudojant„ Python “„ csv “modulį, jums reikės naudoti„ reader “metodą tokiu formatu:

importuoti csv
su atvirais vaisiais.csv ") kaip failas:
data_reader = csv.skaitytuvas (byla)
eilutei „data_reader“:
spausdinti (linija)

Pirmoji eilutė aukščiau pateiktame pavyzdyje importuoja „csv“ modulį. Toliau sakinys „su atviru“ naudojamas saugiai atidaryti failą, saugomą standžiajame diske („vaisiai.csv “(šiuo atveju). Naujas „data_reader“ objektas sukuriamas iškvietus „reader“ metodą iš „csv“ modulio. Šis „skaitytojo“ metodas yra failo pavadinimas kaip privalomas argumentas, todėl nuoroda į „vaisius.csv “perduodama jai. Tada paleidžiamas ciklo sakinys „už“, kad būtų išspausdintos kiekvienos „vaisių“ eilutės.csv “failas. Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti šį išvestį:

['50', '70', '30', '90']

Jei norite priskirti išvesties eilučių numerius, galite naudoti funkciją „surašyti“, kuri kiekvienam iteruojamo elemento numeriui priskiria numerį (pradedant nuo 0, nebent pakeista).

importuoti csv
su atvirais vaisiais.csv ") kaip failas:
data_reader = csv.skaitytuvas (byla)
indeksui, eilutei surašyti (data_reader):
spausdinti (rodyklė, eilutė)

Kintamasis „index“ išlaiko kiekvieno elemento skaičių. Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti šį išvestį:

0 [„Mango“, „Bananas“, „Obuolys“, „Apelsinas“]
1 ['50', '70', '30', '90']

Kadangi „csv“ failo pirmoje eilutėje paprastai yra stulpelių antraštės, galite naudoti funkciją „surašyti“, kad išgautumėte šias antraštes:

importuoti csv
su atvirais vaisiais.csv ") kaip failas:
data_reader = csv.skaitytuvas (byla)
indeksui, eilutei surašyti (data_reader):
jei indeksas == 0:
antraštės = eilutė
spausdinti (antraštės)

Aukščiau esančiame sakinyje esantis blokas „jei“ tikrina, ar indeksas yra lygus nuliui (pirmoji „vaisių.csv “failas). Jei taip, tada „line“ kintamojo vertė priskiriama naujam „headings“ kintamajam. Paleidus aukščiau pateiktą kodo pavyzdį, turėtumėte gauti šį išvestį:

[„Mango“, „Bananas“, „Obuolys“, „Apelsinas“]

Atkreipkite dėmesį, kad skambindami „csv.skaitytojo “metodas naudojant pasirinktinį argumentą„ atribiklis “tokiu formatu:

importuoti csv
su atvirais vaisiais.csv ") kaip failas:
data_reader = csv.skaitytuvas (failas, atribotojas = ";")
eilutei „data_reader“:
spausdinti (linija)

Kadangi csv faile kiekvienas stulpelis yra susietas su reikšmėmis iš eilės, galbūt norėsite sukurti „Python“ žodyno objektą, kai skaitote duomenis iš „csv“ failo. Norėdami tai padaryti, turite naudoti „DictReader“ metodą, kaip parodyta žemiau esančiame kode:

importuoti csv
su atvirais vaisiais.csv ") kaip failas:
data_reader = csv.„DictReader“ (failas)
eilutei „data_reader“:
spausdinti (linija)

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti šį išvestį:

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'

Taigi dabar turite žodyno objektą, kuris susieja atskirus stulpelius su atitinkamomis jų eilutėse esančiomis reikšmėmis. Tai gerai, jei turite tik vieną eilutę. Tarkime, kad „vaisiai.faile csv “dabar yra papildoma eilutė, kurioje nurodoma, kiek dienų reikės, kad vaisių atsargos sunyktų.

Mango, bananas, obuolys, apelsinas
50,70,30,90
3,1,6,4

Kai turite kelias eilutes, paleisdami tą patį aukščiau nurodytą kodo pavyzdį gausite skirtingą išvestį.

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'
'Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'

Tai gali būti ne idealu, nes galbūt norėsite susieti visas reikšmes, susijusias su vienu stulpeliu, su viena raktų ir verčių pora „Python“ žodyne. Išbandykite šį kodo pavyzdį:

importuoti csv
su atvirais vaisiais.csv ") kaip failas:
data_reader = csv.„DictReader“ (failas)
data_dict =
eilutei „data_reader“:
raktas, vertė eilutėje.elementai ():
data_dict.setdefault (raktas, [])
data_dict [raktas].pridėti (vertė)
spausdinti (data_dict)

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti šį išvestį:

'Mango': ['50', '3'], 'Bananas': ['70', '1'], 'Obuolys': ['30', '6'], 'Oranžinė': ['90 ',' 4 ']

Kiekvienam objekto „DictReader“ elementui naudojama kilpa „už“, kad būtų galima pereiti prie raktų ir verčių porų. Prieš tai apibrėžtas naujas „Python“ žodyno kintamasis „data_dict“. Jame bus saugomi galutiniai duomenų susiejimai. Antrame ciklo bloke „for“ naudojamas „Python“ žodyno metodas „setdefault“. Šis metodas priskiria žodyno raktui vertę. Jei rakto ir vertės poros nėra, iš nurodytų argumentų sukuriama nauja. Taigi šiuo atveju raktui bus priskirtas naujas tuščias sąrašas, jei jo dar nėra. Galiausiai „value“ pridedama prie atitinkamo rakto galutiniame objekte „data_dict“.

Duomenų rašymas į CSV failą

Norėdami įrašyti duomenis į „csv“ failą, turėsite naudoti „rašytojo“ metodą iš „csv“ modulio. Toliau pateiktame pavyzdyje bus pridėta nauja eilutė prie esamų „vaisių.csv “failas.

importuoti csv
su atvirais vaisiais.csv "," a ") kaip failas:
data_writer = csv.rašytojas (byla)
duomenų rašytojas.rašytojas ([3,1,6,4])

Pirmasis sakinys atidaro failą režimu „pridėti“, žymimą argumentu „a“. Toliau vadinamas „rašytojo“ metodas ir nuoroda į „vaisius.csv “failas jam perduodamas kaip argumentas. Metodas „writerow“ rašo arba prideda naują failo eilutę.

Jei norite konvertuoti „Python“ žodyną į „csv“ failo struktūrą ir išsaugoti išvestį „csv“ faile, išbandykite šį kodą:

importuoti csv
su atvirais vaisiais.csv "," w ") kaip failas:
antraštės = ["Mango", "Bananas", "Obuolys", "Apelsinas"]
data_writer = csv.„DictWriter“ (failas, lauko pavadinimai = antraštės)
duomenų rašytojas.rašymo antraštė ()
duomenų rašytojas.rašytojas („Mango“: 50, „Bananas“: 70, „Obuolys“: 30, „Apelsinas“: 90)
duomenų rašytojas.rašytojas ("Mango": 3, "Bananas": 1, "Obuolys": 6, "Apelsinas": 4)

Atidariusi tuščią „vaisių.csv “failą naudojant„ su atviru “sakiniu, apibrėžiamas naujas kintamasis„ antraštės “, kuriame yra stulpelių antraštės. Naujas objektas „data_writer“ sukuriamas iškvietus „DictWriter“ metodą ir perduodant jam nuorodą į „vaisius“.csv “failą ir argumentą„ fieldnames “. Kitoje eilutėje stulpelių antraštės įrašomos į failą naudojant „writeheader“ metodą. Paskutiniai du teiginiai įtraukia naujas eilutes į atitinkamas antraštes, sukurtas ankstesniame žingsnyje.

Išvada

CSV failai suteikia tvarkingą būdą rašyti duomenis lentelių formatu. „Python“ įmontuotas „csv“ modulis leidžia lengvai tvarkyti „csv“ failuose esančius duomenis ir įdiegti tolesnę logiką.

5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...