csv – CSV-fillesing og skriving¶

Modulinnhold¶

csv -modulen definerer følgende funksjoner:

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

Returner et leserobjekt som vil iterere over linjer i den gitte csvfile.csvfile kan være et hvilket som helst objekt som støtter iteratorprotokollen og returnerer astring hver gang __next__() -metoden kalles – filobjekter og listeobjekter er begge egnede. Hvis csvfile er et filobjekt, bør det åpnes med newline="". 1 Det kan gis en valgfri valgparameter som brukes til å definere et sett med parametere som er spesifikke for en bestemt CSV-dialekt. Det kan være en forekomst av en underklasse av Dialect -klassen eller en av strengene som returneres av list_dialects() -funksjonen. De andre valgfrie fmtparams søkeordargumentene kan gis for å overstyre individuelle formateringsparametere i gjeldende dialog. For fullstendig informasjon om dialekt- og formateringsparametrene, se avsnitt Dialekter og formateringsparametere.

Hver rad som leses fra csv-filen returneres som en liste over strenger. Ingen automatisk datatypekonvertering utføres med mindre QUOTE_NONNUMERIC formatvalg er spesifisert (i så fall transformeres ikke siterte felt til flyter).

Et kort brukseksempel:

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

Returner et forfatterobjekt som er ansvarlig for å konvertere brukerens data i avgrensede strenger på det gitte fillignende objektet. csvfile kan være et hvilket som helst objekt med en write() -metode. Hvis csvfile er et filobjekt, bør det åpnes med newline="" 1. Det kan gis et valgfritt dialektparameter som brukes til å definere et sett med parametere som er spesifikke for CSV-dialekt. Det kan være en forekomst av en underklasse av Dialect -klassen eller en av strengene som returneres av list_dialects() -funksjonen. De andre valgfrie fmtparams søkeordargumentene kan gis for å overstyre individuelle formateringsparametere i gjeldende dialog. For fullstendige detaljer om dialekt- og formateringsparametrene, se avsnitt Dialekter og formateringsparametere. For å gjøre det så enkelt som mulig å grensesnitt med moduler som implementerer DB API, skrives verdien None som den tomme strengen. Selv om dette ikke er omvendbar transformasjon, gjør det det lettere å dumpe SQL NULL-dataverdier til CSV-filer uten å forhåndsbehandle dataene som returneres fra et cursor.fetch* -anrop. Alle andre ikke-strengdata er strenget med str() før du blir skrevet.

Et kort brukseksempel:

csv.register_dialect(navn]) ¶

Knytt dialekt til navn. navnet må være en streng. Thedialect kan spesifiseres enten ved å sende en underklasse av Dialect, eller av fmtparams søkeordargumenter, eller begge deler, med søkeordargumenter som overordner parametere for dialekten. For fullstendig informasjon om dialekt- og formateringsparametrene, se seksjonen Dialekter og formateringsparametere.

csv.unregister_dialect(navn) ¶

Slett dialekten tilknyttet navnet fra dialektregistret. Et Error heves hvis navnet ikke er et registrert dialektnavn.

csv.get_dialect(navn) ¶

Returner dialekten som er knyttet til navnet. Et Error heves hvis navn ikke er et registrert dialektnavn. Denne funksjonen returnerer en uforanderlig Dialect.

csv.list_dialects() ¶

Returner navnene på alle registrerte dialekter.

csv.field_size_limit() ¶

Returnerer den gjeldende maksimale feltstørrelsen tillatt av parseren. Hvis new_limit er gitt, blir dette den nye grensen.

csv -modulen definerer følgende klasser:

classcsv.DictReader(f, feltnavn = Ingen, restkey = Ingen, restval = Ingen, dialekt = «excel», * args, ** kwds) ¶

Opprett et objekt som fungerer som en vanlig leser, men tilordner informasjonen i hver rad til en dict hvis nøkler er gitt av den valgfrie feltnavnparameteren.

Feltnavnparameteren er en sekvens. Hvis feltnavn ikke er angitt, vil verdiene i første rad med fil f bli brukt som feltnavn. Uansett hvordan feltnavnene blir bestemt, beholder ordboken den opprinnelige rekkefølgen.

Hvis en rad har flere felt enn feltnavn, blir de resterende dataene satt i alist og lagret med feltnavnet som er angitt av restkey (som standard er None). Hvis en ikke-tom rad har færre felt enn feltnavn, fylles de utgående verdiene ut med verdien for restval (som er None).

Alle andre valgfrie eller søkeordargumenter overføres til den underliggende reader forekomsten.

Endret i versjon 3.6: Returrader er nå av typen OrderedDict.

Endret i versjon 3.8: Returrader er nå av typen dict.

Et kort brukseksempel:

klassecsv.DictWriter( f, feltnavn, restval = «», extrasaction = «raise», dialect = «excel», * args, ** kwds) ¶

Lag et objekt som fungerer som en vanlig forfatter, men som kartlegger ordbøker til utgangsrader. Feltnavneparameteren er en sequence av nøkler som identifiserer rekkefølgen som verdiene i ordboken som sendes til writerow() -metoden skrives til filef. Den valgfrie restvalsparameteren angir verdien som skal forstyrres hvis ordboken mangler en nøkkel i feltnavn. Hvis ordboken som sendes til writerow() -metoden inneholder en nøkkel som ikke ble funnet i feltnavn, indikerer den valgfrie ekstraksjonsparameteren hvilken handling som skal utføres. Hvis den er satt til "raise", er standardverdien, ValueError hevet. Hvis den er satt til "ignore", ignoreres ekstra verdier i ordboken. Alle andre valgfrie eller søkeordargumenter sendes til den underliggende writer -forekomst.

Merk at i motsetning til DictReader -klassen, er feltnavnene parameteren til DictWriter -klassen er ikke valgfri.

Et kort brukseksempel:

klassecsv.Dialect

Klassen Dialect er en beholderklasse som primært er avhengig av for sine attributter, som brukes til å definere parametrene for en spesifikk reader eller writer forekomst.

klassecsv.excel Klassen excel definerer de vanlige egenskapene til en Excel-generert CSV-fil. Den er registrert med dialektnavnet "excel". klasse csv. excel_tab

Klassen excel_tab definerer de vanlige egenskapene til en Excel-generertTAB-avgrenset fil. Den er registrert med dialektnavnet "excel-tab".

klassecsv.unix_dialect

Klassen unix_dialect definerer de vanlige egenskapene til en CSV-filegenerert på UNIX-systemer, dvs. bruker "\n" som linjeterminator og sitatfelt. Den er registrert med dialektnavnet "unix".

Ny i versjon 3.2.

klassecsv.Sniffer

Sniffer -klassen brukes til å utlede formatet til en CSV-fil.

Klassen Sniffer gir to metoder:

sniff(eksempel, avgrensere = Ingen) ¶

Analyser den gitte prøven og returner en Dialect underklasse som reflekterer parameterne som er funnet. Hvis den valgfrie avgrensningsparameteren er gitt, tolkes den som en streng som inneholder mulige validdelimiter-tegn.

has_header(eksempel) ¶

Analyser eksemplet på teksten (antas å være i CSV-format) og returner True hvis den første raden ser ut til å være en serie kolonneoverskrifter.

Et eksempel på Sniffer bruk:

csv -modulen definerer følgende konstanter:

csv.QUOTE_ALL

Instruerer writer objekter for å sitere alle felt.

csv.QUOTE_MINIMAL

Instruerer writer objekter om bare å sitere de feltene som inneholder spesielle tegn som skilletegn, quotechar eller noen av tegnene inlineterminator.

csv.QUOTE_NONNUMERIC

instruerer writer objekter om å sitere alle ikke-numeriske felt .

Be leseren om å konv ert alle ikke-siterte felt for å skrive float.

csv.QUOTE_NONE

Instruerer writer motsetter seg å aldri sitere felt. Når strømavgrenseren forekommer i utdataene, går den foran den nåværende rømningstegnet. Hvis escapechar ikke er satt, vil forfatteren heve Error hvis det oppstår noen tegn som krever rømning.

Instruerer reader for å utføre ingen spesiell behandling av sitattegn.

csv -modulen definerer følgende unntak:

unntakcsv.Error

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *