Kaj je datoteka CSV?
Datoteka CSV je vrsta navadne besedilne datoteke, ki uporablja posebno strukturiranje za razporeditev tabelarnih podatkov. CSV je pogosta oblika izmenjave podatkov, saj je kompaktna, enostavna in splošna. Številne spletne storitve omogočajo uporabnikom, da tabelarne podatke s spletnega mesta izvozijo v datoteko CSV. Datoteke CSV se bodo odprle v Excelu in skoraj vse zbirke podatkov imajo orodje, ki omogoča uvoz iz datoteke CSV. Standardna oblika je določena s podatki vrstic in stolpcev. Poleg tega se vsaka vrstica zaključi z novo vrstico, da začne naslednjo vrstico. Tudi znotraj vrstice je vsak stolpec ločen z vejico.
V tej vadnici boste izvedeli:
- Kaj je datoteka CSV?
- Vzorčna datoteka CSV.
- Python CSV modul
- Funkcije modula CSV
- Branje datotek CSV
- Branje kot slovar
- Pisanje v datoteke CSV
- Branje datotek CSV s Pandami
- Pisanje v datoteke CSV s Pandami
Vzorčna datoteka CSV.
Podatki v obliki tabel se imenujejo tudi CSV (vrednosti, ločene z vejico) - dobesedno "vrednosti, ločene z vejico." To je besedilna oblika, namenjena predstavitvi tabelarnih podatkov. Vsaka vrstica datoteke je ena vrstica tabele. Vrednosti posameznih stolpcev so ločene z ločilnim simbolom - vejico (,), podpičjem (;) ali drugim simbolom. CSV lahko Python zlahka prebere in obdela.
Razmislite o naslednjem zavihku
Podatki v tabeli
Programski jezik | Oblikovano od | Pojavil se je | Podaljšanje |
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
To tabelo lahko predstavite v CSV, kot spodaj.
Podatki CSV
Programski jezik, Oblikoval, Nastopil, Razširitev
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C ++, Bjarne Stroustrup, 1983, .cpp
Kot lahko vidite, je vsaka vrstica nova vrstica in vsak stolpec je ločen z vejico. To je primer, kako izgleda datoteka CSV.
Prenesite podatke CSV
Python CSV modul
Python ponuja modul CSV za obdelavo datotek CSV. Če želite brati / zapisovati podatke, morate prečkati vrstice CSV. Za pridobivanje podatkov iz določenih stolpcev morate uporabiti metodo split.
Funkcije modula CSV
V dokumentaciji modula CSV najdete naslednje funkcije:
- csv.field_size_limit - vrne največjo velikost polja
- csv.get_dialect - pridobite narečje, ki je povezano z imenom
- csv.list_dialects - prikaži vsa registrirana narečja
- csv.reader - branje podatkov iz datoteke csv
- csv.register_dialect - povežite narečje z imenom
- csv.writer - zapiši podatke v datoteko csv
- csv.unregister_dialect - izbrišite narečje, povezano z imenom register narečja
- csv.QUOTE_ALL - Navedite vse, ne glede na vrsto.
- csv.QUOTE_MINIMAL - Navedite polja s posebnimi znaki
- csv.QUOTE_NONNUMERIC - Navedite vsa polja, ki niso številčna vrednost
- csv.QUOTE_NONE - V izhodu ne navajajte ničesar
V tej vadnici se bomo osredotočili le na funkcije bralca in zapisovalnika, ki vam omogočajo urejanje, spreminjanje in obdelavo podatkov v datoteki CSV.
Kako prebrati datoteko CSV
Če želite brati podatke iz datotek CSV, morate s funkcijo bralnika ustvariti bralni objekt.
Funkcija bralnika je razvita tako, da zajema vsako vrstico datoteke in sestavi seznam vseh stolpcev. Nato morate izbrati stolpec, za katerega želite spremenljive podatke.
Sliši se veliko bolj zapleteno, kot je. Oglejmo si ta primer in ugotovili bomo, da delo z datoteko csv ni tako težko.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Ko zaženete zgornji program, bo rezultat:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Kako brati CSV kot slovar
DictReader lahko uporabljate tudi za branje datotek CSV. Rezultati se razlagajo kot slovar, pri katerem je vrstica z glavo ključ, druge vrstice pa so vrednosti.
Upoštevajte naslednjo kodo
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Rezultat te kode 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')])
In ta način branja podatkov iz datoteke CSV je veliko lažji kot prejšnja metoda. Vendar to ni najboljši način za branje podatkov.
Kako napisati datoteko CSV
Ko imate nabor podatkov, ki jih želite shraniti v datoteko CSV, morate uporabiti funkcijo zapisovalnika (). Če želite podatke iti skozi vrstice (vrstice), morate uporabiti funkcijo writerow ().
Razmislite o naslednjem primeru. Podatke zapišemo v datoteko "writeData.csv", kjer je ločilo 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'])
Rezultat v datoteki CSV je:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Branje datotek CSV s Pandami
Pandas je knjižnica odprtega vira, ki vam omogoča izvajanje manipulacije s podatki v Pythonu. Pande ponujajo preprost način za ustvarjanje, upravljanje in brisanje podatkov.
Knjižnico pand morate namestiti z ukazom pip install pandas
. V operacijskem sistemu Windows boste ta ukaz izvedli v ukaznem pozivu, medtem ko v Linuxu na terminalu.
Branje CSV-ja v pando DataFrame je zelo hitro in enostavno:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Rezultat:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Zelo uporabna knjižnica. V samo treh vrsticah kode dobite enak rezultat kot prej. Pande vedo, da je prva vrstica CSV vsebovala imena stolpcev, in jih bo uporabil samodejno.
Pisanje v datoteke CSV s Pandami
Zapisovanje v datoteko CSV s Pandas je tako enostavno kot branje. Tu lahko v to prepričate. Najprej morate ustvariti DataFrame na podlagi naslednje kode.
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)
Tukaj je rezultat
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Datoteka CSV se ustvari na določenem mestu.
Zaključek
Torej, zdaj veste, kako uporabljate metodo 'csv' in tudi berete in zapisujete podatke v obliki CSV. Datoteke CSV se pogosto uporabljajo v programskih aplikacijah, ker jih je enostavno brati in upravljati, zaradi majhnosti pa so razmeroma hitre za obdelavo in prenos.
Modul csv ponuja različne funkcije in razrede, ki vam omogočajo enostavno branje in pisanje. Ogledate si lahko uradno dokumentacijo Pythona in najdete še nekaj zanimivih nasvetov in modulov. CSV je najboljši način za shranjevanje, ogled in pošiljanje podatkov. Pravzaprav se ni tako težko naučiti, kot se zdi na začetku. A z malo vaje jo boste obvladali.
Pandas je odlična alternativa za branje datotek CSV.
Obstajajo tudi drugi načini za razčlenitev besedilnih datotek s knjižnicami, kot so ANTLR, PLY in PlyPlus. Vsi se lahko spopadejo s težkim razčlenjevanjem in če preprosta manipulacija z nizom ne deluje, lahko uporabite regularne izraze.