Na údržbu databáz a tabuliek sa najčastejšie používa formát súboru CSV. Prvý riadok v súbore CSV sa najčastejšie používa na definovanie polí stĺpcov, zatiaľ čo všetky ostatné zostávajúce riadky sa považujú za riadky. Táto štruktúra umožňuje používateľom prezentovať tabuľkové údaje pomocou súborov CSV. Súbory CSV je možné upravovať v ľubovoľnom textovom editore. Aplikácie ako LibreOffice Calc však poskytujú pokročilé editovacie nástroje, funkcie triedenia a filtrovania.
Čítanie údajov zo súborov CSV pomocou jazyka Python
Modul CSV v Pythone vám umožňuje čítať, písať a manipulovať s ľubovoľnými údajmi uloženými v súboroch CSV. Ak chcete načítať súbor CSV, budete musieť použiť metódu „reader“ z modulu „csv“ v Pythone, ktorý je súčasťou štandardnej knižnice Pythonu.
Zvážte, že máte súbor CSV obsahujúci nasledujúce údaje:
Mango, banán, jablko, pomaranč50,70,30,90
Prvý riadok súboru definuje každú kategóriu stĺpca, v tomto prípade názov ovocia. Druhý riadok ukladá hodnoty pod každým stĺpcom (skladom v ruke). Všetky tieto hodnoty sú oddelené čiarkou. Ak by ste tento súbor otvorili v tabuľkovej aplikácii, ako je LibreOffice Calc, vyzeral by to takto:
Teraz čítať hodnoty z „ovocia.csv ”pomocou modulu„ csv “v Pythone, budete musieť použiť metódu„ reader “v nasledujúcom formáte:
import csvs otvoreným ("ovocie.csv ") ako súbor:
data_reader = csv.čítačka (súbor)
pre riadok v data_reader:
tlač (riadok)
Prvý riadok vyššie uvedenej vzorky importuje modul „csv“. Ďalej sa príkaz „s otvoreným“ používa na bezpečné otvorenie súboru uloženého na pevnom disku („ovocie.csv “v tomto prípade). Nový objekt „data_reader“ sa vytvorí volaním metódy „reader“ z modulu „csv“. Táto metóda „čitateľa“ berie názov súboru ako povinný argument, takže odkaz na „ovocie“.csv “je mu odovzdané. Ďalej sa spustí príkaz slučky „for“, ktorý vytlačí každý riadok z „ovocia“.súbor CSV. Po spustení ukážky kódu uvedenej vyššie by ste mali získať nasledujúci výstup:
['50', '70', '30', '90']Ak chcete výstupu priradiť čísla riadkov, môžete použiť funkciu „enumerate“, ktorá priraďuje každej položke číslo v iterovateľnej položke (od 0, pokiaľ sa nezmení).
import csvs otvoreným ("ovocie.csv ") ako súbor:
data_reader = csv.čítačka (súbor)
pre index riadok v zozname (data_reader):
tlač (index, riadok)
Premenná „index“ udržuje počet pre každý prvok. Po spustení ukážky kódu uvedenej vyššie by ste mali získať nasledujúci výstup:
0 ['Mango', 'Banana', 'Apple', 'Orange']1 ['50', '70', '30', '90']
Pretože prvý riadok v súbore „csv“ zvyčajne obsahuje nadpisy stĺpcov, môžete na extrahovanie týchto nadpisov použiť funkciu „enumerate“:
import csvs otvoreným ("ovocie.csv ") ako súbor:
data_reader = csv.čítačka (súbor)
pre index riadok vo výčte (data_reader):
ak index == 0:
nadpisy = riadok
tlač (nadpisy)
Blok „if“ vo vyššie uvedenom výpise kontroluje, či je index rovný nule (prvý riadok v časti „ovocie.súbor CSV “). Ak áno, potom je hodnota premennej „riadok“ priradená novej premennej „nadpis“. Po spustení vyššie uvedenej ukážky kódu by ste mali získať nasledujúci výstup:
['Mango', 'Banana', 'Apple', 'Orange']Upozorňujeme, že pri volaní súboru „csv.metóda čitateľa pomocou voliteľného argumentu „oddeľovač“ v nasledujúcom formáte:
import csvs otvoreným ("ovocie.csv ") ako súbor:
data_reader = csv.čítačka (súbor, oddeľovač = ";")
pre riadok v data_reader:
tlač (riadok)
Pretože v súbore csv je každý stĺpec priradený k hodnotám v rade, možno budete chcieť pri čítaní údajov zo súboru „csv“ vytvoriť objekt „slovníka“ v jazyku Python. Ak to chcete urobiť, musíte použiť metódu „DictReader“ uvedenú v nasledujúcom kóde:
import csvs otvoreným ("ovocie.csv ") ako súbor:
data_reader = csv.DictReader (súbor)
pre riadok v data_reader:
tlač (riadok)
Po spustení ukážky kódu uvedenej vyššie by ste mali získať nasledujúci výstup:
'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'Takže teraz máte objekt slovníka, ktorý spája jednotlivé stĺpce s ich zodpovedajúcimi hodnotami v riadkoch. Toto funguje dobre, ak máte iba jeden riadok. Predpokladajme, že „ovocie.Súbor csv ”teraz obsahuje ďalší riadok, ktorý určuje, koľko dní bude trvať, kým zahynie zásoba ovocia.
Mango, banán, jablko, pomaranč50,70,30,90
3,1,6,4
Ak máte viac riadkov, spustenie rovnakej vzorky kódu vyššie spôsobí iný výstup.
'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90''Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'
To nemusí byť ideálne, pretože možno budete chcieť namapovať všetky hodnoty týkajúce sa jedného stĺpca na jeden pár kľúč - hodnota v slovníku Python. Namiesto toho vyskúšajte túto ukážku kódu:
import csvs otvoreným ("ovocie.csv ") ako súbor:
data_reader = csv.DictReader (súbor)
data_dict =
pre riadok v data_reader:
pre kľúč hodnota v riadku.položky ():
údaj_dikt.setdefault (kľúč, [])
data_dict [kľúč].append (hodnota)
print (data_dict)
Po spustení ukážky kódu uvedenej vyššie by ste mali získať nasledujúci výstup:
'Mango': ['50', '3'], 'Banana': ['70', '1'], 'Apple': ['30', '6'], 'Oranžová': ['90 ',' 4 ']Smyčka „pre“ sa používa na každom prvku objektu „DictReader“ na slučku cez páry kľúč - hodnota. Pred tým je definovaná nová premenná slovníka Python „data_dict“. Bude ukladať konečné mapovania údajov. V druhom bloku slučky „pre“ sa používa metóda „setdefault“ slovníka Python. Táto metóda priradí hodnotu kľúču slovníka. Ak dvojica kľúč - hodnota neexistuje, zo zadaných argumentov sa vytvorí nový. V takom prípade bude kľúču pridelený nový prázdny zoznam, ak ešte neexistuje. Na záver sa hodnota „value“ pripojí k zodpovedajúcemu kľúču v konečnom objekte „data_dict“.
Zápis údajov do súboru CSV
Ak chcete zapísať údaje do súboru „csv“, budete musieť použiť metódu „write“ z modulu „csv“. Nasledujúci príklad pripojí nový riadok k existujúcim „plodom.súbor CSV.
import csvs otvoreným ("ovocie.csv "," a ") ako súbor:
data_writer = csv.spisovateľ (spis)
data_writer.writerow ([3,1,6,4])
Prvý príkaz otvorí súbor v režime „pridať“, označený argumentom „a“. Ďalej sa volá metóda „spisovateľa“ a odkaz na „ovocie“.csv ”je mu odovzdaný ako argument. Metóda „writerow“ zapíše alebo do súboru pridá nový riadok.
Ak chcete previesť slovník Pythonu na štruktúru súboru „csv“ a uložiť výstup do súboru „csv“, vyskúšajte tento kód:
import csvs otvoreným ("ovocie.csv "," w ") ako súbor:
nadpisy = ["Mango", "banán", "jablko", "oranžová"]
data_writer = csv.DictWriter (súbor, názvy polí = nadpisy)
data_writer.hlavička zápisu ()
data_writer.writerow ("Mango": 50, "Banana": 70, "Apple": 30, "Orange": 90)
data_writer.writerow ("Mango": 3, "Banana": 1, "Apple": 6, "Orange": 4)
Po otvorení prázdneho „ovocia.Súbor csv pomocou príkazu „s otvoreným“ je definovaná nová premenná „nadpisy“, ktorá obsahuje nadpisy stĺpcov. Nový objekt „data_writer“ sa vytvorí volaním metódy „DictWriter“ a odovzdaním odkazu na „ovocie“.súbor csv a argument „názvy polí“. V nasledujúcom riadku sa do súboru zapisujú hlavičky stĺpcov metódou „writeheader“. Posledné dva príkazy pridávajú nové riadky k ich zodpovedajúcim nadpisom vytvoreným v predchádzajúcom kroku.
Záver
Súbory CSV poskytujú čistý spôsob zápisu údajov do tabuľky. Zabudovaný modul „csv“ v Pythone uľahčuje prácu s údajmi dostupnými v súboroch „csv“ a implementáciu ďalšej logiky do nich.