csv – CSV-filläsning och skrivning¶

Innehåll i modulen¶

csv -modulen definierar följande funktioner:

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

Returnera ett läsarobjekt som kommer att iterera över rader i det givna csvfilen. – filobjekt och listobjekt är båda lämpliga. Om csvfile är ett filobjekt bör det öppnas med newline="". 1 En alternativalektorparameter kan ges som används för att definiera en uppsättning parametrar som är specifika för en viss CSV-dialekt. Det kan vara en förekomst av en underklass av Dialect -klassen eller en av strängarna som returneras av funktionen list_dialects(). De andra valfria fmtparams-sökordsargumenten kan ges för att åsidosätta enskilda formateringsparametrar i den aktuella dialogen. För fullständig information om dialekt- och formateringsparametrarna, se avsnitt Dialekter och formateringsparametrar.

Varje rad som läses från csv-filen returneras som en lista med strängar. Ingen automatisk datatypskonvertering utförs såvida inte QUOTE_NONNUMERIC formatalternativet anges (i vilket fall omciterade fält omvandlas till flottörer).

Ett kort användningsexempel:

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

Returnera ett författarobjekt som ansvarar för att konvertera användarens data i avgränsade strängar på det givna filliknande objektet. csvfile kan vara vilket objekt som helst med en write() -metod. Om csvfile är ett filobjekt, bör det öppnas med newline="" 1. En valfri dialektparameter kan ges som används för att definiera en uppsättning parametrar som är specifika för CSV-dialekt. Det kan vara en förekomst av en underklass av klassen Dialect eller en av strängarna som returneras av list_dialects() -funktionen. De andra valfria fmtparams-sökordsargumenten kan ges för att åsidosätta enskilda formateringsparametrar i den aktuella dialogen. För fullständig information om dialekt- och formateringsparametrar, se avsnitt Dialekter och formateringsparametrar. För att göra det så enkelt som möjligt att ansluta till moduler som implementerar DB API skrivs värdet None som den tomma strängen. Även om detta inte är omvändbar transformation gör det det lättare att dumpa SQL NULL-datavärden till CSV-filer utan att förbehandla data som returneras från ett cursor.fetch* -anrop. Alla andra icke-strängdata strängas med str() innan du skriver.

Ett kort användningsexempel:

csv.register_dialect(namn]) ¶

Associera dialekt med namn. namnet måste vara en sträng. Thedialect kan anges antingen genom att skicka en underklass av Dialect, eller genom fmtparams nyckelordsargument, eller båda, med nyckelordsargument som överskrider parametrar för dialekten. För fullständig information om dialekt- och formateringsparametrar, se avsnittet Dialekter och formateringsparametrar.

csv.unregister_dialect(namn) ¶

Ta bort dialekten som är associerad med namnet från dialektregistret. Ett Error höjs om namnet inte är ett registrerat dialektnamn.

csv.get_dialect(namn) ¶

Returnera dialekten som är associerad med namnet. En Error höjs om namnet inte är ett registrerat dialektnamn. Den här funktionen returnerar en oföränderlig Dialect.

csv.list_dialects() ¶

Returnera namnen på alla registrerade dialekter.

csv.field_size_limit() ¶

Returnerar den aktuella maximala fältstorleken tillåts av analysatorn. Om new_limit ges, blir detta den nya gränsen.

csv -modulen definierar följande klasser:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = ”excel”, * args, ** kwds) ¶

Skapa ett objekt som fungerar som en vanlig läsare men kartlägger informationen i varje rad till en dict vars nycklar ges av den alternativa fältnamnparametern.

Fältnamnsparametern är en sekvens. Om fältnamn är avstängd kommer värdena i den första raden i fil f att användas som fältnamn. Oavsett hur fältnamnen bestäms, behåller ordlistan sin ursprungliga ordning.

Om en rad har fler fält än fältnamn, läggs de återstående uppgifterna i alist och lagras med fältnamnet som anges av restknappen (som standard är None). Om en rad som inte är tom har färre fält än fältnamn, fylls värdena i restval med värdet restval (vilket är None).

Alla andra valfria eller nyckelordargument skickas till den underliggande reader -instansen.

Ändrad i version 3.6: Rader som returneras är nu av typen OrderedDict.

Ändrad i version 3.8: Returnerade rader är nu av typen dict.

Ett kort exempel på användning:

klasscsv.DictWriter( f, fältnamn, restval = ””, extrasaction = ”höja”, dialekt = ”excel”, * args, ** kwds) ¶

Skapa ett objekt som fungerar som en vanlig författare men kartlägger ordböcker till utmatningsrader. Fältnamnparametern är en sequence av nycklar som identifierar den ordning i vilken värden i ordet skickas till writerow() -metoden skrivs till filef. Den valfria restvalsparametern anger det värde som ska omskakas om ordlistan saknar en nyckel i fältnamn. Om ordet som skickas till writerow() -metoden innehåller en nyckel som inte hittades i fältnamn, indikerar den valfria extraktionsparametern vilken åtgärd som ska vidtas. Om den är inställd på "raise", standardvärdet höjs en ValueError. Om den är inställd på "ignore" ignoreras extra värden i ordboken. valfria argument eller nyckelordargument skickas till den underliggande writer -instansen.

Observera att till skillnad från klassen DictReader parameter för DictWriter -klassen är inte valfri.

Ett kort användningsexempel:

klasscsv.Dialect

Dialect -klassen är en behållarklass baserad på främst för dess attribut, som används för att definiera parametrarna för en specifik reader eller writer instans.

klasscsv.excel Klassen excel definierar de vanliga egenskaperna för en Excel-genererad CSV-fil. Den är registrerad med dialektnamnet "excel". klass csv. excel_tab

Klassen excel_tab definierar de vanliga egenskaperna för en Excel-genereradTAB-avgränsad fil. Den är registrerad med dialektnamnet "excel-tab".

klasscsv.unix_dialect

Klassen unix_dialect definierar de vanliga egenskaperna för en CSV-filgenererad på UNIX-system, dvs. använder "\n" som radterminator och citerar alla fält. Den är registrerad med dialektnamnet "unix".

Nytt i version 3.2.

klasscsv.Sniffer

Klassen Sniffer används för att härleda formatet för en CSV-fil.

Klassen Sniffer ger två metoder:

sniff(exempel, avgränsare = Ingen) ¶

Analysera det givna exemplet och returnera en Dialect underklass som reflekterar de hittade parametrarna. Om den valfria avgränsningsparametern ges, tolkas den som en sträng som innehåller möjliga validdelimiter-tecken.

has_header(exempel) ¶

Analysera exempeltexten (antas vara i CSV-format) och returnera True om den första raden verkar vara en serie kolumnrubriker.

Ett exempel för Sniffer use:

csv -modulen definierar följande konstanter:

csv.QUOTE_ALL

Instruerar writer objekt att citera alla fält.

csv.QUOTE_MINIMAL

Instruerar writer objekt att bara citera de fält som innehåller speciella tecken som avgränsare, quotechar eller något av tecknen inlineterminator.

csv.QUOTE_NONNUMERIC

Instruerar writer objekt för att citera alla icke-numeriska fält .

instruerar läsaren att konv ert alla icke citerade fält för att skriva float.

csv.QUOTE_NONE

Instruerar writer motsätter sig att aldrig citera fält. När strömavgränsaren förekommer i utdata, föregås den nuvarande flykteckentecknet. Om escapechar inte är inställt kommer författaren att höja Error om det förekommer några tecken som kräver escaping.

Instruktioner reader för att inte utföra någon speciell bearbetning av citattecken.

csv -modulen definierar följande undantag:

undantagcsv.Error

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *