csv – CSV-fillæsning og -skrivning¶

Modulindhold¶

csv -modulet definerer følgende funktioner:

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

Returner et læserobjekt, der vil gentage sig over linjer i det givne csvfile.csvfile kan være ethvert objekt, der understøtter iteratorprotokollen og vender tilbage, hver gang dets __next__() metode kaldes – filobjekter og listeobjekter er begge egnede. Hvis csvfile er et filobjekt, skal det åbnes med newline="". 1 Der kan gives en valgfri dialektparameter, der bruges til at definere et sæt parametre, der er specifikt for en bestemt CSV-dialekt. Det kan være en forekomst af en underklasse af klassen Dialect eller en af strengene, der returneres af funktionen list_dialects(). De andre valgfri fmtparams-søgeordsargumenter kan gives til at tilsidesætte individuelle formateringsparametre i den aktuelle dialog. For fuldstændige detaljer om dialekt- og formateringsparametrene, se sektion Dialekter og formateringsparametre.

Hver række, der læses fra csv-filen, returneres som en liste over strenge. Ingen automatisk datatypekonvertering udføres, medmindre QUOTE_NONNUMERIC formatoption er specificeret (i hvilket tilfælde ikke-citerede felter omdannes til floats).

Et kort brugseksempel:

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

Returner et forfatterobjekt, der er ansvarligt for at konvertere brugerens data i afgrænsede strenge på det givne fillignende objekt. csvfile kan være ethvert objekt med en write() metode. Hvis csvfile er et filobjekt, skal det åbnes med newline="" 1. Der kan gives et valgfrit dialektparameter, som bruges til at definere et sæt parametre, der er specifikke for den specielle CSV-dialekt. Det kan være en forekomst af en underklasse af klassen Dialect eller en af strengene, der returneres af funktionen list_dialects(). De andre valgfri fmtparams-søgeordsargumenter kan gives til at tilsidesætte individuelle formateringsparametre i den aktuelle dialog. For detaljerede oplysninger om dialekt- og formateringsparametrene, se sektion Dialekter og formateringsparametre. For at gøre det så let som muligt at interface med moduler, der implementerer DB API, er værdien None skrevet som den tomme streng. Selvom dette ikke er omvendt transformation, gør det det nemmere at dumpe SQL NULL-dataværdier til CSV-filer uden forbehandling af de data, der returneres fra et cursor.fetch* -opkald. Alle andre ikke-strengede data er strengt str() inden der skrives.

Et kort brugseksempel:

csv.register_dialect(navn]) ¶

Associer dialekt med navn. navn skal være en streng. Thedialect kan angives enten ved at sende en underklasse af Dialect eller af fmtparams søgeordsargumenter eller begge, med nøgleordargumenter, der overskrider parametre for dialekten. For detaljerede oplysninger om dialekt- og formateringsparametrene, se afsnittet Dialekter og formateringsparametre.

csv.unregister_dialect(navn) ¶

Slet dialekten, der er knyttet til navnet, fra dialektregistret. Et Error hæves, hvis navnet ikke er et registreret dialektnavn.

csv.get_dialect(navn) ¶

Returner dialekten tilknyttet navnet. Et Error hæves, hvis navn ikke er et registreret dialektnavn. Denne funktion returnerer en uforanderlig Dialect.

csv.list_dialects() ¶

Returner navnene på alle registrerede dialekter.

csv.field_size_limit() ¶

Returnerer den aktuelle maksimale feltstørrelse tilladt af parseren. Hvis der gives ny_begrænsning, bliver dette den nye grænse.

csv -modulet definerer følgende klasser:

klassecsv.DictReader(f, feltnavne = Ingen, restkey = Ingen, restval = Ingen, dialekt = “excel”, * args, ** kwds) ¶

Opret et objekt der fungerer som en almindelig læser, men kortlægger informationen i hver række til en dict, hvis nøgler er angivet af den valgfrie feltnavne-parameter.

Feltnavne-parameteren er en sekvens. Hvis feltnavne ikke er angivet, bruges værdierne i første række af fil f som feltnavne. Uanset hvordan feltnavne bestemmes, bevarer ordbogens oprindelige rækkefølge.

Hvis en række har flere felter end feltnavne, placeres de resterende data i alist og gemmes med det feltnavn, der er angivet med restkey (som standard er None). Hvis en ikke-blank række har færre felter end feltnavne, udfyldes de værdier, der mangler, med værdien for restval (som standard None).

Alle andre valgfri eller søgeordsargumenter sendes til den underliggende reader -forekomst.

Ændret i version 3.6: Returnerede rækker er nu af typen OrderedDict.

Ændret i version 3.8: Returnerede rækker er nu af typen dict.

Et kort brugseksempel:

klassecsv.DictWriter( f, feltnavne, restval = “”, extrasaction = “hæve”, dialekt = “excel”, * args, ** kwds) ¶

Opret et objekt, der fungerer som en almindelig forfatter, men kortlægger ordbøger til outputrækker. Feltnavneparameteren er en sequence af nøgler, der identificerer rækkefølgen, i hvilken værdier i ordet, der sendes til writerow() -metoden, skrives til filef. Den valgfri restval-parameter specificerer den værdi, der skal omskilles, hvis ordbogen mangler en nøgle i feltnavne. Hvis ordet, der sendes til writerow() -metoden, indeholder en nøgle, der ikke findes infieldnames, angiver den valgfri ekstraktionsparameter, hvilken handling der skal foretages. Hvis den er indstillet til "raise", standardværdien hæves en ValueError. Hvis den er indstillet til "ignore", ignoreres ekstra værdier i ordbogen. Enhver anden valgfri eller søgeordsargumenter videregives til den underliggende writer -forekomst.

Bemærk, at i modsætning til klassen DictReader er feltnavne parameter af DictWriter -klassen er ikke valgfri.

Et kort brugseksempel:

klassecsv.Dialect

Dialect klassen er en beholderklasse, der primært er afhængig af for sine attributter, som bruges til at definere parametrene for en bestemt reader eller writer forekomst.

klassecsv.excel excel klassen definerer de sædvanlige egenskaber for en Excel-genereret CSV-fil. Det er registreret med dialektnavnet "excel". klasse csv. excel_tab

Klassen excel_tab definerer de sædvanlige egenskaber for en Excel-genereretTAB-afgrænset fil. Det er registreret med dialektnavnet "excel-tab".

klassecsv.unix_dialect

Klassen unix_dialect definerer de sædvanlige egenskaber for en CSV-filegenereret på UNIX-systemer, dvs. ved hjælp af "\n" som linjeterminator og citerer alle felter. Det er registreret med dialektnavnet "unix".

Nyt i version 3.2.

klassecsv.Sniffer

Klassen Sniffer bruges til at udlede formatet på en CSV-fil.

Klassen Sniffer giver to metoder:

sniff(prøve, afgrænsere = Ingen) ¶

Analyser den givne prøve og returner en Dialect underklasse, der reflekterer de fundne parametre. Hvis den valgfri afgrænsningsparameter er givet, fortolkes den som en streng, der indeholder mulige validdelimiter-tegn.

has_header(prøve) ¶

Analyser prøveteksten (formodes at være i CSV-format), og returner True, hvis den første række ser ud til at være en række kolonneoverskrifter.

Et eksempel på Sniffer use:

csv modulet definerer følgende konstanter:

csv.QUOTE_ALL

Instruerer writer objekter til at citere alle felter.

csv.QUOTE_MINIMAL

Instruerer writer objekter til kun at citere de felter, der indeholder specielle tegn såsom afgrænser, citattegn eller et hvilket som helst af tegnene i inlineterminator.

csv.QUOTE_NONNUMERIC

Instruerer writer objekter til at citere alle ikke-numeriske felter .

Beder læseren om at konv ert alle ikke-citerede felter for at skrive float.

csv.QUOTE_NONE

Instruerer writer modsætter sig aldrig at citere felter. Når strømafgrænseren forekommer i outputdata, indledes den med den aktuelle escapecharakter. Hvis escapechar ikke er indstillet, hæver forfatteren Error, hvis der opstår nogen tegn, der kræver escaping.

Instruerer reader for at udføre ingen speciel behandling af citattegn.

csv -modulet definerer følgende undtagelse:

undtagelsecsv.Error

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *