csv – CSV-tiedostojen lukeminen ja kirjoittaminen¶

Moduulin sisältö¶

csv -moduuli määrittelee seuraavat toiminnot:

csv.reader(csvfile, dialect = ”excel”, ** fmtparams ) ¶

Palauta lukijaobjekti, joka toistaa rivien yli annetussa csvfile.csvfile-tiedostossa voi olla mikä tahansa objekti, joka tukee iteraattoriprotokollaa ja palauttaa astringin joka kerta, kun sen __next__() -menetelmää kutsutaan – tiedostoobjektit ja luetteloobjektit ovat molemmat sopivia. Jos csvfile on tiedostoobjekti, se on avattava newline="" -merkillä. 1 Voidaan antaa optionaldialect-parametri, jota käytetään määrittelemään tiettyyn CSV-murteeseen liittyvä parametrijoukko. Se voi olla Dialect -luokan aliluokan esiintymä tai jokin merkkijonoista, jotka funktio list_dialects() palauttaa. Muut valinnaiset fmtparams-avainsana-argumentit voidaan antaa korvaamaan yksittäiset muotoiluparametrit currentdialectissa. Lisätietoja murreesta ja muotoiluparametreista on kohdassa Murteet ja muotoiluparametrit.

Jokainen csv-tiedostosta luettu rivi palautetaan merkkijonoluettelona. Ei automaattista tietotyyppimuunnosta suoritetaan, ellei muotoiluvaihtoehtoa QUOTE_NONNUMERIC määritetä (tällöin noteeraamattomat kentät muunnetaan kelluviksi).

Lyhyt käyttöesimerkki:

csv.writer(csvfile, dialect = ”excel”, ** fmtparams) ¶

Palauta kirjoittajaobjekti, joka on vastuussa käyttäjän tiedot eroteltuina merkkijonoina tietyssä tiedostomaisessa objektissa. csvfile voi olla mikä tahansa objekti, jolla on write() -menetelmä. Jos csvfile on tiedosto-objekti, se on avattava newline="" 1: llä. Voidaan antaa valinnainen dialektiparametri, jota käytetään määrittelemään joukko parametreja, jotka ovat erityisiä CSV-murreille. Se voi olla Dialect -luokan aliluokan esiintymä tai jokin merkkijonoista, jotka funktio list_dialects() palauttaa. Muut valinnaiset fmtparams-avainsana-argumentit voidaan antaa korvaamaan yksittäiset muotoiluparametrit currentdialectissa. Lisätietoja murreesta ja muotoiluparametreista on kohdassa Murteet ja muotoiluparametrit. Jotta DB-sovellusliittymää käyttävien moduulien käyttöliittymä olisi mahdollisimman helppoa, thevalue None kirjoitetaan tyhjänä merkkijonona. Vaikka tämä ei ole peruuttamaton muunnos, se helpottaa SQL NULL -data-arvojen tyhjentämistä CSV-tiedostoihin käsittelemättä cursor.fetch* -puhelusta palautettuja tietoja. Kaikki muut merkkijonottomat tiedot on str() ennen kirjoittamista.

Lyhyt käyttöesimerkki:

csv.register_dialect(nimi]) ¶

Liitä murre nimeen. nimen on oltava merkkijono. Thedialect voidaan määrittää joko välittämällä alaluokka Dialect, tai kirjoittamalla fmtparams-avainsana-argumentit tai molemmat avainsana-argumenteilla, jotka ohittavat murteen parametrit. Täydelliset tiedot murteesta ja muotoiluparametreista on kohdassa Murteet ja muotoiluparametrit.

csv.unregister_dialect(nimi) ¶

Poista nimiin liittyvä murre murderekisteristä. Error korotetaan, jos nimi ei ole rekisteröity murteen nimi.

csv.get_dialect(nimi) ¶

Palauta nimeen liittyvä murre. Error korotetaan, jos nimi ei ole rekisteröity murre nimi. Tämä funktio palauttaa muuttumattoman Dialect.

csv.list_dialects() ¶

Palauta kaikkien rekisteröityjen murteiden nimet.

csv.field_size_limit() ¶

Palauttaa nykyisen kentän enimmäiskoon jäsennin sallii. Jos new_limit annetaan, tästä tulee uusi raja.

Moduuli csv määrittelee seuraavat luokat:

classcsv.DictReader(f, kentänimet = Ei mitään, restkey = Ei mitään, restval = Ei mitään, murre = ”excel”, * args, ** kwds) ¶

Luo objekti joka toimii kuin tavallinen lukija, mutta kartoittaa jokaisen rivin tiedot dict -tietoon, jonka avaimet antaa valinnainen kenttänimiparametri.

Kenttänimien parametri on sekvenssi. Jos kentänimiä ei anneta, tiedoston f ensimmäisen rivin arvoja käytetään kenttäniminä. Riippumatta siitä, miten kentänimet määritetään, sanakirja säilyttää niiden alkuperäisen järjestyksen.

Jos rivillä on enemmän kenttiä kuin kenttänimiä, jäljellä olevat tiedot lisätään luetteloon ja tallennetaan restkey-määritetyn kentän nimen kanssa (mikä oletuksena None). Jos muulla kuin tyhjällä rivillä on vähemmän kenttiä kuin kenttänimet, ne täydentävät uudelleenarvot (jotka oletusarvoisesti None).

Kaikki muut valinnaiset tai avainsana-argumentit välitetään taustalla olevalle reader -instanssille.

Muutettu versiossa 3.6: Palautetut rivit ovat nyt tyyppiä OrderedDict.

Muutettu versiossa 3.8: Palautetut rivit ovat nyt tyyppiä dict.

Lyhyt käyttöesimerkki:

classcsv.DictWriter( f, kentänimet, restval = ””, extrasaction = ”korota”, murre = ”excel”, * args, ** kwds) ¶

Luo objekti, joka toimii tavallisen kirjoittajan tapaan, mutta kartoittaa sanakirjoja tulostusriveille. Fieldnames-parametri on sequence avaimia, jotka tunnistavat järjestyksen, jossa writerow() -menetelmälle välitetyt sanakirjan arvot kirjoitetaan tiedostoon. Valinnainen restval-parametri määrittää arvon, joka kirjoitetaan, jos sanakirjasta puuttuu avain kentän nimissä. Jos writerow() -menetelmälle välitetty sanakirja sisältää avaimen, jota ei löydy sisänimiä, valinnainen ekstrasaktioparametri ilmaisee, mitä toimintoa toteutetaan. Jos se on asetettu arvoon "raise", oletusarvo, a ValueError korotetaan. Jos se on asetettu arvoon "ignore", sanakirjan ylimääräiset arvot jätetään huomioimatta. valinnainen tai avainsana-argumentti välitetään taustalla olevalle writer -instanssille.

Huomaa, että toisin kuin luokassa DictReader, kentänimet DictWriter -luokan parametri ei ole valinnainen.

Lyhyt käyttöesimerkki:

classcsv.Dialect

Luokka Dialect on säilöluokka, johon käytetään ensisijaisesti attribuuttejaan, joita käytetään määrittämään parametrit tietylle reader tai writer ilmentymä.

classcsv.excel Luokka excel määrittelee Excelin luoman CSV-tiedoston tavalliset ominaisuudet. Se on rekisteröity murteen nimellä "excel". class csv. excel_tab

Luokka excel_tab määrittelee Excel-generoidun TAB-erotetun tiedoston tavalliset ominaisuudet. Se on rekisteröity murteen nimellä "excel-tab".

classcsv.unix_dialect

Luokka unix_dialect määrittelee UNIX-järjestelmissä tuotetun CSV: n tavanomaiset ominaisuudet, ts. "\n" käytetään rivinvaihtajana ja lainausmerkkikentinä. Se on rekisteröity murteen nimellä "unix".

Uusi versiossa 3.2.

classcsv.Sniffer

Luokkaa Sniffer käytetään CSV-tiedoston muodon päättelemiseen.

Luokassa Sniffer on kaksi tapaa:

sniff(näyte, erottimet = Ei mitään) annettu näyte ja palauta löydettyjen parametrien heijastavaDialectaliluokka. Jos valinnainen erotinparametri annetaan, se tulkitaan merkkijonoksi, joka sisältää mahdollisia validdelimiter-merkkejä.has_header(näyte) ¶

Analysoi esimerkkiteksti (oletetaan olevan CSV-muoto) ja palauta True, jos ensimmäinen rivi näyttää olevan sarakeotsikoiden sarja.

Esimerkki Sniffer use:

csv -moduuli määrittelee seuraavat vakiot:

csv.QUOTE_ALL

käskee writer -objekteja lainata kaikkia kenttiä.

csv.QUOTE_MINIMAL

kehottaa writer objekteja lainaan vain ne kentät, jotka sisältävät erikoismerkkejä, kuten erottimen, lainausmerkin tai minkä tahansa merkin inlineterminator.

csv.QUOTE_NONNUMERIC

kehottaa writer -objektia lainaamaan kaikki ei-numeeriset kentät .

Kehottaa lukijaa tulemaan konv erota kaikki lainaamattomat kentät kellukkeen kirjoittamiseen.

csv.QUOTE_NONE

Ohjeet writer -objektit eivät koskaan tarjoa kenttiä. Kun currentdelimiter esiintyy lähtötiedoissa, sitä edeltää nykyinen escapecharcharacter. Jos escapecharia ei ole asetettu, kirjoittaja nostaa Error, jos joku pakenemista edellyttävästä merkistä löytyy.

Ohjeet reader ei suoriteta lainausmerkkien erityistä käsittelyä.

Moduuli csv määrittelee seuraavan poikkeuksen:

poikkeuscsv.Error

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *