CSV-tiedostojen lukeminen ja kirjoittaminen Pythonissa CSV-moduulin avulla & Pandat

Sisällysluettelo:

Anonim

Mikä on CSV-tiedosto?

CSV-tiedosto on yksinkertaisen tekstitiedoston tyyppi, joka käyttää erityistä jäsentämistä taulukkotietojen järjestämiseksi. CSV on yleinen tiedonsiirron muoto, koska se on kompakti, yksinkertainen ja yleinen. Monet verkkopalvelut sallivat käyttäjien viedä taulukkotiedot verkkosivustolta CSV-tiedostoon. CSV-tiedostot avautuvat Exceliin, ja melkein kaikissa tietokannoissa on työkalu, joka sallii tuonnin CSV-tiedostoista. Vakiomuoto määritetään riveillä ja sarakkeilla. Lisäksi jokainen rivi päättyy uudella rivillä seuraavan rivin aloittamiseksi. Myös rivin sisällä kukin sarake erotetaan pilkulla.

Tässä opetusohjelmassa opit:

  • Mikä on CSV-tiedosto?
  • CSV-näytetiedosto.
  • Python CSV -moduuli
  • CSV-moduulin toiminnot
  • CSV-tiedostojen lukeminen
  • Lukeminen sanakirjana
  • Kirjoittaminen CSV-tiedostoihin
  • CSV-tiedostojen lukeminen pandojen kanssa
  • Kirjoittaminen CSV-tiedostoihin pandojen avulla

CSV-näytetiedosto.

Taulukoiden muodossa olevaa dataa kutsutaan myös CSV: ksi (pilkuilla erotetut arvot) - kirjaimellisesti "pilkuilla erotetut arvot". Tämä on tekstimuoto, joka on tarkoitettu taulukkotietojen esittämiseen. Jokainen tiedoston rivi on yksi taulukon rivi. Yksittäisten sarakkeiden arvot erotetaan erotinsymbolilla - pilkulla (,), puolipisteellä (;) tai muulla symbolilla. Python pystyy helposti lukemaan ja käsittelemään CSV: n.

Harkitse seuraavaa Tabea

Taulukon tiedot

Ohjelmointikieli Suunnitellut Ilmestyi Laajennus
Python Guido van Rossum 1991 .py
Java James Gosling 1995 .java
C ++ Bjarne Stroustrup 1983 .cpp

Voit edustaa tätä taulukkoa csv: ssä kuten alla.

CSV-tiedot

Ohjelmointikieli, Suunnittelija, Esiintynyt, Laajennus

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C ++, Bjarne Stroustrup, 1983, .pp

Kuten näette, kukin rivi on uusi rivi, ja kukin sarake on erotettu pilkulla. Tämä on esimerkki siitä, miltä CSV-tiedosto näyttää.

Lataa CSV-tiedot

Python CSV -moduuli

Python tarjoaa CSV-moduulin CSV-tiedostojen käsittelemiseksi. Tietojen lukemiseksi / kirjoittamiseksi sinun on selattava CSV-rivejä. Sinun on käytettävä jakomenetelmää saadaksesi tietoja määritetyistä sarakkeista.

CSV-moduulin toiminnot

CSV-moduulin dokumentaatiosta löydät seuraavat toiminnot:

  • csv.field_size_limit - palauta kentän enimmäiskoko
  • csv.get_dialect - hanki nimeen liittyvä murre
  • csv.list_dialects - näytä kaikki rekisteröidyt murteet
  • csv.reader - lukee tietoja csv-tiedostosta
  • csv.register_dialect - yhdistää murre nimen kanssa
  • csv.writer - kirjoita tiedot csv-tiedostoon
  • csv.unregister_dialect - poista murrerekisterin nimeen liittyvä murre
  • csv.QUOTE_ALL - Lainaa kaikki tyypistä riippumatta.
  • csv.QUOTE_MINIMAL - Tarjouskentät erikoismerkeillä
  • csv.QUOTE_NONNUMERIC - Lainaa kaikki kentät, jotka eivät ole numeroarvoja
  • csv.QUOTE_NONE - Älä lainaa mitään lähdössä

Tässä opetusohjelmassa keskitymme vain lukija- ja kirjoittajatoimintoihin, joiden avulla voit muokata, muokata ja käsitellä CSV-tiedoston tietoja.

Kuinka lukea CSV-tiedosto

Jos haluat lukea tietoja CSV-tiedostoista, sinun on käytettävä lukijatoimintoa luodaksesi lukijaobjektin.

Lukijatoiminto on kehitetty ottamaan tiedoston kukin rivi ja luomaan luettelo kaikista sarakkeista. Sitten sinun on valittava sarake, jolle haluat muuttujan tiedot.

Se kuulostaa paljon monimutkaisemmalta kuin se on. Katsotaanpa tätä esimerkkiä, ja saamme selville, että csv-tiedoston käyttäminen ei ole niin vaikeaa.

#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)

Kun suoritat yllä olevan ohjelman, tulos on:

['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']

Kuinka lukea CSV sanakirjana

Voit myös käyttää DictReaderia CSV-tiedostojen lukemiseen. Tulokset tulkitaan sanakirjaksi, jossa otsikkorivi on avain, ja muut rivit ovat arvoja.

Harkitse seuraavaa koodia

#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)

Tämän koodin tulos on:

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')])

Ja tämä tapa lukea tietoja CSV-tiedostosta on paljon helpompaa kuin aikaisempi menetelmä. Tämä ei kuitenkaan ole paras tapa lukea tietoja.

Kuinka kirjoittaa CSV-tiedosto

Kun sinulla on joukko tietoja, jotka haluat tallentaa CSV-tiedostoon, sinun on käytettävä writer () -toimintoa. Jos haluat toistaa tiedot riveillä (riveillä), sinun on käytettävä writow () -toimintoa.

Harkitse seuraavaa esimerkkiä. Kirjoitamme tiedot tiedostoon "writeData.csv", jossa erotin on heittomerkki.

#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'])

Tulos csv-tiedostossa on:

Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp

CSV-tiedostojen lukeminen pandojen kanssa

Pandas on avoimen lähdekoodin kirjasto, jonka avulla voit suorittaa tietojen käsittelyä Pythonissa. Pandat tarjoavat helpon tavan luoda, käsitellä ja poistaa tietoja.

Sinun on asennettava pandas-kirjasto komennolla pip install pandas . Windowsissa tämä komento suoritetaan komentokehotteessa, kun taas Linuxissa pääte.

CSV: n lukeminen pandojen DataFrame-kehykseksi on erittäin nopeaa ja helppoa:

#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)

Tulos:

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp 

Erittäin hyödyllinen kirjasto. Vain kolmella koodirivillä saat saman tuloksen kuin aiemmin. Pandat tietävät, että CSV: n ensimmäinen rivi sisälsi sarakkeiden nimiä, ja se käyttää niitä automaattisesti.

Kirjoittaminen CSV-tiedostoihin pandojen avulla

CSV-tiedostoon kirjoittaminen Pandalla on yhtä helppoa kuin lukeminen. Täällä voit vakuuttaa siinä. Ensin sinun on luotava DataFrame seuraavan koodin perusteella.

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)

Tässä on tulos

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp

Ja CSV-tiedosto luodaan määritettyyn sijaintiin.

Johtopäätös

Joten nyt tiedät kuinka käyttää menetelmää 'csv' ja lukea ja kirjoittaa tietoja CSV-muodossa. CSV-tiedostoja käytetään laajalti ohjelmistosovelluksissa, koska niitä on helppo lukea ja hallita, ja niiden pieni koko tekee niistä suhteellisen nopeaa käsittelyä ja siirtämistä varten.

Csv-moduuli tarjoaa useita toimintoja ja luokkia, joiden avulla voit lukea ja kirjoittaa helposti. Voit tarkastella virallista Python-dokumentaatiota ja löytää mielenkiintoisempia vinkkejä ja moduuleja. CSV on paras tapa tallentaa, katsella ja lähettää tietoja. Itse asiassa sitä ei ole niin vaikea oppia kuin alussa näyttää. Mutta pienellä harjoittelulla hallitset sen.

Pandas on loistava vaihtoehto CSV-tiedostojen lukemiseen.

Lisäksi on olemassa muita tapoja jäsentää tekstitiedostoja kirjastoilla, kuten ANTLR, PLY ja PlyPlus. Ne kaikki pystyvät käsittelemään raskaita jäsentelyjä, ja jos yksinkertainen merkkijonon manipulointi ei toimi, voit käyttää säännöllisiä lausekkeita.