Modulinhalt¶
Die csv
definiert die folgenden Funktionen:
csv.
reader
(csvfile, dialect = „excel“, ** fmtparams ) ¶
Gibt ein Reader-Objekt zurück, das in der angegebenen csvfile.csvfile über Zeilen iteriert. Dies kann ein beliebiges Objekt sein, das das Iterator-Protokoll unterstützt und bei jedem Aufruf der Methode __next__()
astring zurückgibt – Dateiobjekte und Listenobjekte sind beide geeignet. Wenn csvfile ein Dateiobjekt ist, sollte es mit newline=""
geöffnet werden. 1 Es kann ein optionaldialect-Parameter angegeben werden, mit dem eine Reihe von Parametern definiert wird, die für einen bestimmten CSV-Dialekt spezifisch sind. Dies kann eine Instanz einer Unterklasse der Klasse Dialect
oder eine der von der Funktion list_dialects()
zurückgegebenen Zeichenfolgen sein. Die anderen optionalen Schlüsselwortargumente fmtparams können angegeben werden, um einzelne Formatierungsparameter im aktuellen Dialekt zu überschreiben. Ausführliche Informationen zu den Dialekt- und Formatierungsparametern finden Sie unter Dialekte und Formatierungsparameter.
Jede aus der CSV-Datei gelesene Zeile wird als Liste von Zeichenfolgen zurückgegeben. Es wird keine automatische Datentypkonvertierung durchgeführt, es sei denn, die Formatoption QUOTE_NONNUMERIC
ist angegeben (in diesem Fall werden nicht zitierte Felder in Gleitkommazahlen umgewandelt).
Ein kurzes Verwendungsbeispiel:
csv.
writer
(csvfile, dialect = „excel“, ** fmtparams) ¶
Gibt ein Writer-Objekt zurück, das für die Konvertierung des verantwortlich ist Benutzerdaten in begrenzte Zeichenfolgen auf dem angegebenen dateiähnlichen Objekt. csvfile kann ein beliebiges Objekt mit einer write()
-Methode sein. Wenn csvfile ein Dateiobjekt ist, sollte es mit newline=""
1 geöffnet werden. Es kann ein optionaler Dialektparameter angegeben werden, mit dem eine Reihe von Parametern definiert wird, die für einen bestimmten CSV-Dialekt spezifisch sind. Dies kann eine Instanz einer Unterklasse der Klasse Dialect
oder eine der von der Funktion list_dialects()
zurückgegebenen Zeichenfolgen sein. Die anderen optionalen Schlüsselwortargumente fmtparams können angegeben werden, um einzelne Formatierungsparameter im aktuellen Dialekt zu überschreiben. Ausführliche Informationen zu den Dialekt- und Formatierungsparametern finden Sie unter Dialekte und Formatierungsparameter. Um die Schnittstelle zu Modulen, die die DB-API implementieren, so einfach wie möglich zu gestalten, wird der Wert None
als leere Zeichenfolge geschrieben. Dies ist zwar keine reversible Umwandlung, erleichtert jedoch das Speichern von SQL-NULL-Datenwerten in CSV-Dateien, ohne die von einem cursor.fetch*
-Aufruf zurückgegebenen Daten vorzuverarbeiten. Alle anderen Nicht-String-Daten werden mit Zeichenfolgen versehen str()
vor dem Schreiben.
Ein kurzes Anwendungsbeispiel:
csv.
register_dialect
(name]) ¶
Dialekt mit Name verknüpfen. Name muss eine Zeichenfolge sein. Der Dialekt kann entweder durch Übergeben einer Unterklasse von Dialect
oder durch Schlüsselwortargumente von fmtparams oder durch beides angegeben werden, wobei Schlüsselwortargumente die Parameter des Dialekts überschreiben. Ausführliche Informationen zu den Dialekt- und Formatierungsparametern finden Sie im Abschnitt Dialekte und Formatierungsparameter.
csv.
unregister_dialect
(name) ¶
Löschen Sie den mit dem Namen verknüpften Dialekt aus der Dialektregistrierung. Ein Error
wird ausgelöst, wenn der Name kein registrierter Dialektname ist.
csv.
get_dialect
(name) ¶
Gibt den mit name verknüpften Dialekt zurück. Ein Error
wird ausgelöst, wenn name kein registrierter Dialektname ist. Diese Funktion gibt eine unveränderliche Dialect
zurück.
csv.
list_dialects
() ¶
Gibt die Namen aller registrierten Dialekte zurück.
csv.
field_size_limit
() ¶
Gibt die aktuelle maximale Feldgröße zurück vom Parser erlaubt. Wenn new_limit angegeben wird, wird dies zum neuen Limit.
Das Modul csv
definiert die folgenden Klassen:
classcsv.
DictReader
(f, Feldnamen = Keine, Restkey = Keine, Restval = Keine, Dialekt = „Excel“, * Argumente, ** Kwds) ¶
Erstellen Sie ein Objekt Dies funktioniert wie ein normaler Leser, ordnet die Informationen in jeder Zeile jedoch einem dict
zu, dessen Schlüssel durch den optionalen Parameter fieldnames angegeben werden.
Der Parameter fieldnames ist eine Sequenz. Wenn Feldnamen nicht angegeben werden, werden die Werte in der ersten Zeile der Datei f als Feldnamen verwendet. Unabhängig davon, wie die Feldnamen bestimmt werden, behält das Wörterbuch seine ursprüngliche Reihenfolge bei.
Wenn eine Zeile mehr Felder als Feldnamen enthält, werden die verbleibenden Daten in eine Liste aufgenommen und mit dem von restkey angegebenen Feldnamen gespeichert (standardmäßig None
). Wenn eine nicht leere Zeile weniger Felder als Feldnamen enthält, werden die fehlenden Werte mit dem Wert von restval (der standardmäßig None
ist) ausgefüllt.
Alle anderen optionalen oder Schlüsselwortargumente werden an die zugrunde liegende reader
-Instanz übergeben.
In Version 3.6 geändert: Zurückgegebene Zeilen sind jetzt vom Typ OrderedDict
.
In Version 3.8 geändert: Zurückgegebene Zeilen sind jetzt vom Typ dict
.
Ein kurzes Verwendungsbeispiel:
classcsv.
DictWriter
( f, fieldnames, restval = „“, extrasaction = „raise“, dialect = „excel“, * args, ** kwds) ¶
Erstellen Sie ein Objekt, das wie ein normaler Writer funktioniert, aber Wörterbücher auf Ausgabezeilen abbildet. Der Parameter fieldnames ist eine sequence
von Schlüsseln, die die Reihenfolge angeben, in der Werte im Wörterbuch, die an die writerow()
-Methode übergeben werden, in filef geschrieben werden. Der optionale Parameter restval gibt den Wert an, der geschrieben werden soll, wenn im Wörterbuch ein Schlüssel in Feldnamen fehlt. Wenn das an die Methode writerow()
übergebene Wörterbuch einen Schlüssel enthält, dessen Infieldnamen nicht gefunden wurden, gibt der optionale Parameter extrasaction an, welche Aktion ausgeführt werden soll. Wenn er auf "raise"
wird der Standardwert a ValueError
ausgelöst. Wenn er auf "ignore"
gesetzt ist, werden zusätzliche Werte im Wörterbuch ignoriert Optionale oder Schlüsselwortargumente werden an die zugrunde liegende writer
-Instanz übergeben.
Beachten Sie, dass im Gegensatz zur DictReader
-Klasse die Feldnamen Der Parameter der Klasse DictWriter
ist nicht optional.
Ein kurzes Verwendungsbeispiel:
classcsv.
Dialect
¶
Die Klasse Dialect
ist eine Containerklasse, die hauptsächlich für ihre Attribute verwendet wird, mit denen die Parameter für ein bestimmtes reader
oder writer
Instanz.
Klassecsv.
excel
¶
Die Klasse excel
definiert die üblichen Eigenschaften einer von Excel generierten CSV-Datei. Es ist unter dem Dialektnamen "excel"
registriert.
classcsv.
excel_tab
¶
Die Klasse excel_tab
definiert die üblichen Eigenschaften einer durch Excel generierten, durch TAB getrennten Datei. Es ist mit dem Dialektnamen "excel-tab"
registriert.
classcsv.
unix_dialect
¶
Die Klasse unix_dialect
definiert die üblichen Eigenschaften einer auf UNIX-Systemen generierten CSV-Datei, dh die Verwendung von "\n"
als Zeilenabschluss und Anführungszeichen für alle Felder. Es ist mit dem Dialektnamen "unix"
registriert.
Neu in Version 3.2.
classcsv.
Sniffer
¶
Die Klasse Sniffer
wird verwendet, um das Format einer CSV-Datei abzuleiten.
Die Klasse Sniffer
bietet zwei Methoden:
sniff
(Beispiel, Trennzeichen = Keine) ¶
Analysieren das gegebene Beispiel und geben Sie eine Dialect
-Unterklasse zurück, die die gefundenen Parameter widerspiegelt. Wenn der optionale Begrenzerparameter angegeben ist, wird er als Zeichenfolge interpretiert, die mögliche Validdelimiter-Zeichen enthält.
has_header
(Beispiel) ¶
Analysieren Sie den Beispieltext (vermutlich in CSV-Format) und geben Sie True
zurück, wenn die erste Zeile eine Reihe von Spaltenüberschriften zu sein scheint.
Ein Beispiel für Sniffer
use:
Das Modul csv
definiert die folgenden Konstanten:
csv.
QUOTE_ALL
¶
Weist writer
Objekte an, alle Felder in Anführungszeichen zu setzen.
csv.
QUOTE_MINIMAL
¶
Weist writer
Objekte an, nur die Felder in Anführungszeichen zu setzen, die spezielle Zeichen wie Trennzeichen, Anführungszeichen oder eines der Zeichen inlineterminator enthalten. P. > csv.
QUOTE_NONNUMERIC
¶
Weist writer
Objekte an, alle nicht numerischen Felder in Anführungszeichen zu setzen
Weist den Leser an, zu konv Geben Sie alle nicht in Anführungszeichen gesetzten Felder ein, um float einzugeben.
csv.
QUOTE_NONE
¶
Anweisungen writer
Objekte, die niemals Felder zitieren. Wenn der aktuelle Begrenzer in den Ausgabedaten vorkommt, geht ihm das aktuelle Escapeecharcharacter voraus. Wenn die Escape-Zeichenfolge nicht festgelegt ist, löst der Writer Error
aus, wenn Zeichen gefunden werden, die ein Escapezeichen erfordern.
Weist reader
an Um keine spezielle Verarbeitung von Anführungszeichen durchzuführen.
Das Modul csv
definiert die folgende Ausnahme:
Ausnahmecsv.
Error