csv – CSV-bestand lezen en schrijven¶

Module-inhoud¶

De csv module definieert de volgende functies:

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

Retourneer een reader-object dat itereert over regels in het opgegeven csvfile. Csvfile kan elk object zijn dat het iterator-protocol ondersteunt en elke keer dat zijn __next__() -methode wordt aangeroepen, adstring retourneert – bestandsobjecten en lijstobjecten zijn beide geschikt. Als csvfile een bestandsobject is, moet het worden geopend met newline="". 1 Er kan een optionele dialectparameter worden opgegeven die wordt gebruikt om een set parameters te definiëren die specifiek zijn voor een bepaald CSV-dialect. Het kan een instantie zijn van een subklasse van de Dialect -klasse of een van de strings die worden geretourneerd door de list_dialects() -functie. De andere optionele fmtparams-sleutelwoordargumenten kunnen worden gegeven om individuele opmaakparameters in het huidige dialect te overschrijven. Voor volledige details over de dialect- en opmaakparameters, zie sectie Dialecten en opmaakparameters.

Elke rij die uit het csv-bestand wordt gelezen, wordt geretourneerd als een lijst met strings. Er wordt geen automatische datatype-conversie uitgevoerd, tenzij de QUOTE_NONNUMERIC formaatoptie is gespecificeerd (in welk geval velden zonder aanhalingstekens worden omgezet in drijvers).

Een kort gebruiksvoorbeeld:

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

Geef een schrijverobject terug dat verantwoordelijk is voor het converteren van de gebruikersgegevens in gescheiden tekenreeksen op het gegeven bestandsachtige object. csvfile kan elk object zijn met een write() methode. Als csvfile een bestandsobject is, moet het worden geopend met newline="" 1. Een optionele dialectparameter kan worden opgegeven die wordt gebruikt om een set parameters te definiëren die specifiek zijn voor een specifiek CSV-dialect. Het kan een instantie zijn van een subklasse van de Dialect -klasse of een van de strings die worden geretourneerd door de list_dialects() -functie. De andere optionele fmtparams-sleutelwoordargumenten kunnen worden gegeven om individuele opmaakparameters in het huidige dialect te overschrijven. Zie de sectie Dialecten en opmaakparameters voor volledige details over de dialect- en opmaakparameters. Om het zo gemakkelijk mogelijk te maken om te communiceren met modules die de DB API implementeren, wordt de waarde None geschreven als de lege string. Hoewel dit geen omkeerbare transformatie is, maakt het het eenvoudiger om SQL NULL-gegevenswaarden naar CSV-bestanden te dumpen zonder de gegevens die zijn geretourneerd door een cursor.fetch* -aanroep voor te verwerken. Alle andere niet-tekenreeksgegevens worden met str() voordat het werd geschreven.

Een kort gebruiksvoorbeeld:

csv.register_dialect(naam]) ¶

Associeer dialect met naam. naam moet een tekenreeks zijn. Het dialect kan worden gespecificeerd door een subklasse Dialect door te geven, of door fmtparams trefwoordargumenten, of beide, waarbij trefwoordargumenten de parameters van het dialect overschrijven. Voor volledige details over de dialect- en opmaakparameters, zie sectie Dialecten en opmaakparameters.

csv.unregister_dialect(naam) ¶

Verwijder het dialect dat aan de naam is gekoppeld uit het dialectregister. Een Error wordt geactiveerd als de naam geen geregistreerde dialectnaam is.

csv.get_dialect(naam) ¶

Geeft het dialect terug dat bij de naam hoort. Een Error wordt opgewekt alsnaam geen geregistreerde dialectnaam is. Deze functie retourneert een onveranderlijk Dialect.

csv.list_dialects() ¶

Retourneert de namen van alle geregistreerde dialecten.

csv.field_size_limit() ¶

Geeft als resultaat de huidige maximale veldgrootte toegestaan door de parser. Als new_limit wordt gegeven, wordt dit de nieuwe limiet.

De csv module definieert de volgende klassen:

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

Maak een object dat werkt als een gewone lezer, maar wijst de informatie in elke rij toe aan een dict waarvan de sleutels worden gegeven door de optionele parameter fieldnames.

De parameter fieldnames is een reeks. Als veldnamen is opgegeven, worden de waarden in de eerste rij van bestand f gebruikt als de veldnamen. Ongeacht hoe de veldnamen worden bepaald, de woordenboek behoudt hun oorspronkelijke volgorde.

Als een rij meer velden dan veldnamen heeft, worden de resterende gegevens in een lijst geplaatst en opgeslagen met de veldnaam gespecificeerd door restkey (die standaard None). Als een niet-lege rij minder velden heeft dan veldnamen, worden de ontbrekende waarden ingevuld met de waarde restval (die standaard None is).

Alle andere optionele of trefwoordargumenten worden doorgegeven aan de onderliggende reader -instantie.

Gewijzigd in versie 3.6: geretourneerde rijen zijn nu van het type OrderedDict.

Gewijzigd in versie 3.8: geretourneerde rijen zijn nu van het type dict.

Een kort gebruiksvoorbeeld:

classcsv.DictWriter( f, fieldnames, restval = “”, extrasaction = “raise”, dialect = “excel”, * args, ** kwds) ¶

Maak een object dat werkt als een gewone schrijver maar woordenboeken toewijst aan outputrijen. De parameter fieldnames is een sequence van sleutels die de volgorde aangeven waarin waarden in de woordenboek die zijn doorgegeven aan de writerow() -methode, worden geschreven naar filef. De optionele parameter restval specificeert de waarde die moet worden geschreven als het woordenboek een sleutel in veldnamen mist. Als de woordenboek die is doorgegeven aan de writerow() -methode een sleutel bevat die niet is gevonden in infieldnames, geeft de optionele parameter extrasaction aan welke actie moet worden uitgevoerd. Als deze is ingesteld op "raise", de standaardwaarde, een ValueError wordt verhoogd. Als deze is ingesteld op "ignore", worden extra waarden in het woordenboek genegeerd. optionele of trefwoordargumenten worden doorgegeven aan de onderliggende writer instantie.

Merk op dat in tegenstelling tot de DictReader klasse, de veldnamen parameter van de DictWriter klasse is niet optioneel.

Een kort gebruiksvoorbeeld:

classcsv.Dialect

De Dialect klasse is een containerklasse waarop primair wordt vertrouwd voor zijn attributen, die worden gebruikt om de parameters voor een specifieke reader of writer instantie.

classcsv.excel

De klasse excel definieert de gebruikelijke eigenschappen van een door Excel gegenereerd CSV-bestand. Het is geregistreerd met de dialectnaam "excel".

classcsv.excel_tab

De klasse excel_tab definieert de gebruikelijke eigenschappen van een door Excel gegenereerd door TAB gescheiden bestand. Het is geregistreerd met de dialectnaam "excel-tab".

classcsv.unix_dialect

De klasse unix_dialect definieert de gebruikelijke eigenschappen van een CSV-bestand dat wordt gegenereerd op UNIX-systemen, dwz door "\n" als regelterminator te gebruiken en alle velden aan te halen. Het is geregistreerd met de dialectnaam "unix".

Nieuw in versie 3.2.

classcsv.Sniffer

De klasse Sniffer wordt gebruikt om de indeling van een CSV-bestand af te leiden.

De Sniffer klasse biedt twee methoden:

sniff(voorbeeld, scheidingstekens = Geen) ¶

Analyseren het gegeven voorbeeld en retourneer een Dialect subklasse die de gevonden parameters weerspiegelt. Als de optionele parameter voor scheidingstekens is opgegeven, wordt deze geïnterpreteerd als een tekenreeks die mogelijke limiettekens bevat.

has_header(sample) ¶

Analyseer de voorbeeldtekst (wordt verondersteld in CSV-indeling) en retourneer True als de eerste rij een reeks kolomkoppen lijkt te zijn.

Een voorbeeld voor Sniffer use:

De csv module definieert de volgende constanten:

csv.QUOTE_ALL

Geeft writer objecten opdracht om alle velden te citeren.

csv.QUOTE_MINIMAL

Geeft writer objecten de opdracht om alleen die velden aan te halen die speciale tekens bevatten zoals scheidingsteken, quotechar of een van de tekens inlineterminator.

csv.QUOTE_NONNUMERIC

Geeft writer objecten de opdracht om alle niet-numerieke velden te citeren .

Geeft de lezer opdracht om te conv ert alle niet-aanhalingstekens om float te typen.

csv.QUOTE_NONE

Geeft opdracht writer objecten om nooit velden te citeren. Wanneer de currentdelimiter voorkomt in uitvoergegevens, wordt deze voorafgegaan door het huidige escape-teken. Als escapechar niet is ingesteld, zal de schrijver Error verhogen als er tekens worden aangetroffen die moeten worden ontsnapt.

Geeft aan reader om geen speciale verwerking van aanhalingstekens uit te voeren.

De csv -module definieert de volgende uitzondering:

uitzonderingcsv.Error

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *