Mi az a CSV fájl?
A CSV-fájl egy egyszerű szöveges fájl, amely speciális strukturálást használ a táblázatos adatok rendezéséhez. A CSV az adatcsere általános formátuma, mivel kompakt, egyszerű és általános. Számos online szolgáltatás lehetővé teszi a felhasználók számára, hogy táblázatos adatokat exportáljanak a webhelyről CSV-fájlba. A CSV fájljai megnyílnak az Excel programba, és szinte az összes adatbázis rendelkezik eszközzel, amely lehetővé teszi a CSV fájlokból történő importálást. A standard formátumot sorok és oszlopok adatai határozzák meg. Ezenkívül minden sort új sor zár le, hogy megkezdje a következő sort. A soron belül is minden oszlopot vessző választ el.
Ebben az oktatóanyagban megtudhatja:
- Mi az a CSV fájl?
- CSV mintafájl.
- Python CSV modul
- CSV modul funkciók
- CSV-fájlok olvasása
- Olvasás szótárként
- Írás CSV fájlokba
- CSV fájlok olvasása pandákkal
- CSV fájlokba írása pandákkal
CSV mintafájl.
A táblázatok formájában szereplő adatokat CSV-nek (vesszővel elválasztott értékek) is hívják - szó szerint "vesszővel elválasztott értékeknek". Ez egy táblázatos adatok megjelenítésére szolgáló szöveges formátum. A fájl minden sora a táblázat egy sora. Az egyes oszlopok értékeit elválasztó szimbólum választja el - vessző (,), pontosvessző (;) vagy más szimbólum. A CSV könnyen olvasható és feldolgozható a Python által.
Tekintsük a következő Tabét
Táblázat adatai
Programozási nyelv | Tervezte | Megjelent | Kiterjesztés |
Piton | Guido van Rossum | 1991 | .py |
Jáva | James Gosling | 1995 | .Jáva |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Ezt a táblázatot az alábbiak szerint képviselheti csv formátumban.
CSV-adatok
Programozási nyelv, Tervező, Megjelenés, Kiterjesztés
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C ++, Bjarne Stroustrup, 1983, .pp
Amint láthatja, minden sor új sor, és minden oszlop vesszővel van elválasztva. Ez egy példa arra, hogyan néz ki egy CSV fájl.
Töltse le a CSV-adatokat
Python CSV modul
A Python CSV modult biztosít a CSV fájlok kezelésére. Adatok olvasásához / írásához végig kell lépkednie a CSV sorain. Az osztott metódust kell használnia, hogy adatokat kapjon a megadott oszlopokból.
CSV modul funkciók
A CSV modul dokumentációjában a következő funkciók találhatók:
- csv.field_size_limit - adja meg a maximális mezőméretet
- csv.get_dialect - a névhez társított dialektus megszerzése
- csv.list_dialects - az összes regisztrált nyelvjárás megjelenítése
- csv.reader - adatok olvasása egy csv fájlból
- csv.register_dialect - társítsa a nyelvjárást a névhez
- csv.writer - adatokat írjon egy csv fájlba
- csv.unregister_dialect - törölje a nyelvjárási nyilvántartás nevéhez társított nyelvjárást
- csv.QUOTE_ALL - Idézz mindent, típustól függetlenül.
- csv.QUOTE_MINIMAL - Idézetmezők speciális karakterekkel
- csv.QUOTE_NONNUMERIC - Idézzen minden olyan mezőt, amely nem számérték
- csv.QUOTE_NONE - Ne idézz semmit a kimenetben
Ebben az oktatóanyagban csak azokra az olvasó és író funkciókra fogunk összpontosítani, amelyek lehetővé teszik a CSV fájlban lévő adatok szerkesztését, módosítását és manipulálását.
CSV fájl olvasása
Az adatok CSV-fájlokból történő olvasásához az olvasófunkcióval kell létrehoznia egy olvasóobjektumot.
Az olvasó funkciót úgy fejlesztették ki, hogy a fájl minden sorát felvegye, és az összes oszlopot felsorolja. Ezután ki kell választania azt az oszlopot, amelyhez a változó adatait szeretné használni.
Sokkal bonyolultabban hangzik, mint amilyen. Vessünk egy pillantást erre a példára, és megtudjuk, hogy a csv fájl használata nem olyan nehéz.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
A fenti program végrehajtásakor a kimenet a következő lesz:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Hogyan olvasható el egy CSV szótárként
Használhatja a DictReader programot CSV fájlok olvasására is. Az eredményeket szótárként értelmezik, ahol a fejléc sora a kulcs, a többi sor pedig érték.
Vegye figyelembe a következő kódot
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Ennek a kódnak az eredménye:
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')])
És így az adatok CSV fájlból történő olvasása sokkal könnyebb, mint a korábbi módszer. Ez azonban nem a legjobb módszer az adatok olvasására.
A CSV fájl írása
Ha rendelkezik olyan adatsorral, amelyet CSV fájlban szeretne tárolni, akkor az író () függvényt kell használnia. Az adatok sorokon (sorokon) történő iterálásához a writow () függvényt kell használnia.
Tekintsük a következő példát. Adatokat írunk egy "writeData.csv" fájlba, ahol a határoló aposztróf.
#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'])
Az eredmény a csv fájlban:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
CSV fájlok olvasása pandákkal
A Pandas egy nyílt forráskódú könyvtár, amely lehetővé teszi az adatok manipulálását a Pythonban. A pandák egyszerű módszert kínálnak az adatok létrehozására, kezelésére és törlésére.
Telepítenie kell a pandas könyvtárat a pip install pandas
paranccsal. A Windows rendszerben ezt a parancsot a Parancssorban hajtja végre, míg a Linux alatt a Terminálban.
A CSV beolvasása pandák DataFrame-be nagyon gyors és egyszerű:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Eredmény:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Nagyon hasznos könyvtár. Mindössze három kódsorban ugyanaz az eredmény, mint korábban. A pandák tudják, hogy a CSV első sora oszlopneveket tartalmazott, és ez automatikusan felhasználja őket.
CSV fájlokba írása pandákkal
CSV fájlba írni Pandas segítségével ugyanolyan egyszerű, mint olvasni. Itt meggyőzheted benne. Először a következő kód alapján kell létrehoznia a DataFrame-et.
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)
Itt van a kimenet
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
A CSV fájl pedig a megadott helyen jön létre.
Következtetés
Tehát most már tudja, hogyan használja a 'csv' módszert, és olvassa és írja az adatokat CSV formátumban is. A CSV fájlokat széles körben használják a szoftveralkalmazásokban, mert könnyen olvashatók és kezelhetők, és kis méretük miatt viszonylag gyorsan feldolgozhatók és továbbíthatók.
A csv modul különféle funkciókat és osztályokat biztosít, amelyek lehetővé teszik az egyszerű olvasást és írást. Megtekintheti a hivatalos Python dokumentációt, és további érdekes tippeket és modulokat találhat. A CSV a legjobb mód az adatok mentésére, megtekintésére és küldésére. Valójában nem olyan nehéz megtanulni, mint az elején tűnik. De egy kis gyakorlással el fogja sajátítani.
A Pandas nagyszerű alternatíva a CSV fájlok olvasásához.
Vannak más módszerek is a szövegfájlok elemzésére olyan könyvtárakkal, mint az ANTLR, a PLY és a PlyPlus. Mindannyian képesek kezelni a nagy igénybevételű elemzéseket, és ha az egyszerű karakterlánc-manipuláció nem működik, vannak olyan reguláris kifejezések, amelyeket használhat.