Čo je to súbor CSV?
Súbor CSV je typ súboru vo formáte obyčajného textu, ktorý na usporiadanie tabuľkových údajov využíva špecifické štruktúrovanie. CSV je bežný formát na výmenu údajov, pretože je kompaktný, jednoduchý a všeobecný. Mnoho služieb online umožňuje používateľom exportovať tabuľkové údaje z webových stránok do súboru CSV. Súbory CSV sa otvoria v programe Excel a takmer všetky databázy majú nástroj, ktorý umožňuje import zo súboru CSV. Štandardný formát je definovaný údajmi riadkov a stĺpcov. Každý riadok je navyše ukončený novým riadkom, ktorý začína ďalším riadkom. V rámci riadku je každý stĺpec oddelený čiarkou.
V tomto návode sa dozviete:
- Čo je to súbor CSV?
- Ukážkový súbor CSV.
- Modul CSV v jazyku Python
- Funkcie modulu CSV
- Čítanie súborov CSV
- Čítanie ako slovník
- Zápis do súborov CSV
- Čítanie súborov CSV pomocou pand
- Zápis do súborov CSV pomocou pandy
Ukážkový súbor CSV.
Dáta vo forme tabuliek sa tiež nazývajú CSV (hodnoty oddelené čiarkami) - doslova „hodnoty oddelené čiarkou“. Toto je textový formát určený na prezentáciu tabuľkových údajov. Každý riadok súboru je jedným riadkom tabuľky. Hodnoty jednotlivých stĺpcov sú oddelené oddeľovačom - čiarkou (,), bodkočiarkou (;) alebo iným symbolom. CSV možno ľahko prečítať a spracovať pomocou Pythonu.
Zvážte nasledujúcu Tabe
Údaje tabuľky
Programovací jazyk | Navrhol | Objavil sa | Predĺženie |
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Túto tabuľku môžete reprezentovať v csv, ako je uvedené nižšie.
Údaje vo formáte CSV
Programovací jazyk, Navrhnuté, Objavené, Rozšírenie
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C ++, Bjarne Stroustrup, 1983, .cpp
Ako vidíte, každý riadok má nový riadok a každý stĺpec je oddelený čiarkou. Toto je príklad toho, ako vyzerá súbor CSV.
Stiahnite si dáta CSV
Modul CSV v jazyku Python
Python poskytuje modul CSV na prácu so súbormi CSV. Ak chcete čítať / zapisovať údaje, musíte prechádzať riadkami súboru CSV. Na získanie údajov zo zadaných stĺpcov musíte použiť metódu split.
Funkcie modulu CSV
V dokumentácii k modulu CSV nájdete nasledujúce funkcie:
- csv.field_size_limit - vráti maximálnu veľkosť poľa
- csv.get_dialect - získa dialekt, ktorý je spojený s menom
- csv.list_dialects - zobraziť všetky registrované dialekty
- csv.reader - načíta údaje zo súboru csv
- csv.register_dialect - spojiť dialekt s menom
- csv.writer - zapíše údaje do súboru csv
- csv.unregister_dialect - odstráni dialekt spojený s menom registra dialektov
- csv.QUOTE_ALL - Citujte všetko bez ohľadu na typ.
- csv.QUOTE_MINIMAL - Citujte polia so špeciálnymi znakmi
- csv.QUOTE_NONNUMERIC - Citujte všetky polia, ktoré nemajú hodnotu čísel
- csv.QUOTE_NONE - na výstupe nič necitujte
V tomto výučbe sa zameriame iba na funkcie čítačky a zapisovača, ktoré vám umožňujú upravovať, upravovať a manipulovať s údajmi v súbore CSV.
Ako čítať súbor CSV
Ak chcete načítať údaje zo súborov CSV, musíte na vygenerovanie objektu čítačky použiť funkciu čítačky.
Funkcia čítačky je vyvinutá tak, aby zachytila každý riadok súboru a vytvorila zoznam všetkých stĺpcov. Potom musíte zvoliť stĺpec, pre ktorý chcete údaje premennej mať.
Znie to oveľa zložitejšie, ako je. Pozrime sa na tento príklad a zistíme, že práca s csv súborom nie je taká náročná.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Po vykonaní vyššie uvedeného programu bude výstupom:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Ako čítať CSV ako slovník
Môžete tiež použiť program DictReader na čítanie súborov CSV. Výsledky sa interpretujú ako slovník, kde kľúčom je riadok záhlavia a ostatnými riadkami sú hodnoty.
Zvážte nasledujúci kód
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Výsledkom tohto kódu je:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
A tento spôsob čítania údajov zo súboru CSV je oveľa jednoduchší ako predchádzajúci spôsob. Toto však nie je najlepší spôsob čítania údajov.
Ako písať súbor CSV
Ak máte súbor údajov, ktoré chcete uložiť do súboru CSV, musíte použiť funkciu writer (). Na iteráciu údajov cez riadky (riadky) musíte použiť funkciu writerow ().
Uvažujme o nasledujúcom príklade. Údaje zapisujeme do súboru „writeData.csv“, kde je oddeľovač apostrof.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Výsledok v súbore CSV je:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Čítanie súborov CSV pomocou pand
Pandas je knižnica opensource, ktorá vám umožňuje vykonávať manipuláciu s dátami v Pythone. Pandy poskytujú jednoduchý spôsob vytvárania, manipulácie a mazania údajov.
Knižnicu pandas musíte nainštalovať pomocou príkazu pip install pandas
. V systéme Windows tento príkaz vykonáte v príkazovom riadku, zatiaľ čo v systéme Linux v termináli.
Čítanie súboru CSV do dátového rámca pandy je veľmi rýchle a ľahké:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Výsledok:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Veľmi užitočná knižnica. Iba v troch riadkoch kódu získate rovnaký výsledok ako predtým. Pandy vedia, že prvý riadok súboru CSV obsahoval názvy stĺpcov, a použije ich automaticky.
Zápis do súborov CSV pomocou pandy
Zápis do súboru CSV pomocou aplikácie Pandas je rovnako ľahký ako čítanie. Tu o tom môžete presvedčiť. Najskôr musíte vytvoriť DataFrame na základe nasledujúceho kódu.
from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)
Tu je výstup
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
A súbor CSV sa vytvorí na určenom mieste.
Záver
Takže teraz viete, ako používať metódu 'csv' a tiež čítať a zapisovať údaje vo formáte CSV. Súbory CSV sa v softvérových aplikáciách často používajú, pretože sa dajú ľahko čítať a spravovať a vďaka svojej malej veľkosti sú relatívne rýchle na spracovanie a prenos.
Modul csv poskytuje rôzne funkcie a triedy, ktoré vám umožňujú ľahké čítanie a písanie. Môžete sa pozrieť na oficiálnu dokumentáciu k Pythonu a nájsť ďalšie zaujímavé tipy a moduly. CSV je najlepší spôsob ukladania, prezerania a odosielania údajov. V skutočnosti nie je také ťažké naučiť sa, ako sa zdá na začiatku. Ale s trochou cviku to zvládnete.
Pandy sú skvelou alternatívou k čítaniu súborov CSV.
Existujú aj ďalšie spôsoby syntaktickej analýzy textových súborov s knižnicami ako ANTLR, PLY a PlyPlus. Všetci môžu zvládnuť náročnú analýzu a ak jednoduchá manipulácia s reťazcami nefunguje, môžete použiť regulárne výrazy.