So lesen und schreiben Sie CSV-Dateien in Python

Das CSV-Format ist das am häufigsten verwendete Import- und Exportformat für Datenbanken und Tabellenkalkulationen. In diesem Lernprogramm erhalten Sie eine detaillierte Einführung in CSVs und die verfügbaren Module und Klassen zum Lesen und Schreiben von Daten in CSV-Dateien. Es wird auch ein Arbeitsbeispiel beschrieben, in dem gezeigt wird, wie Daten in eine CSV-Datei in Python geschrieben und gelesen werden.

Was ist eine CSV-Datei??

Eine CSV-Datei (durch Kommas getrennte Werte) ermöglicht das Speichern von Daten in einer Tabellenstruktur mit der Erweiterung .csv. CSV-Dateien wurden in E-Commerce-Anwendungen häufig verwendet, da sie als sehr einfach zu verarbeiten angesehen werden. Einige der Bereiche, in denen sie verwendet wurden, umfassen:

  • Kundendaten importieren und exportieren
  • Import und Export von Produkten
  • Aufträge exportieren
  • Exportieren von E-Commerce-Analyseberichten

Leser- und Schreibermodule

Das CSV-Modul verfügt über mehrere Funktionen und Klassen zum Lesen und Schreiben von CSVs. Dazu gehören:

  • csv.reader-funktion
  • csv.writer funktion
  • csv.Dictwriter-Klasse
  • csv.DictReader-Klasse

csv.reader

Das csv.reader-Modul benötigt die folgenden Parameter:

  • csvfile: Dies ist normalerweise ein Objekt, das das Iteratorprotokoll unterstützt und in der Regel jedes Mal eine Zeichenfolge zurückgibt __Nächster__() Methode wird aufgerufen.
  • dialect = 'Excel': Ein optionaler Parameter, der zum Definieren eines Parametersatzes für einen bestimmten CSV-Dialekt verwendet wird.
  • Fmtparams: Ein optionaler Parameter, mit dem vorhandene Formatierungsparameter überschrieben werden können.

Hier ist ein Beispiel für die Verwendung des Moduls csv.reader.

Importiere csv mit open ('example.csv', newline = ") als File: reader = csv.reader (File) für Zeile im Reader: print (Zeile)

csv.writer module

Dieses Modul ähnelt dem csv.reader-Modul und wird zum Schreiben von Daten in eine CSV verwendet. Es sind drei Parameter erforderlich:

  • csvfile: Diesekönnenirgendein Gegenstand mit einem sein schreiben() Methode.
  • dialect = 'Excel': Ein optionaler Parameter, der zum Definieren eines Parametersatzes für eine bestimmte CSV verwendet wird.
  • fmtparam: Ein optionaler Parameter, mit dem vorhandene Formatierungsparameter überschrieben werden können.

DictReader- und DictWriter-Klassen

DictReader und DictWriter sind in Python verfügbare Klassen zum Lesen und Schreiben in CSV. Obwohl sie den Reader- und Writer-Funktionen ähneln, verwenden diese Klassen Wörterbuchobjekte zum Lesen und Schreiben in CSV-Dateien.

DictReader

Es erstellt ein Objekt, das die gelesenen Informationen in ein Wörterbuch abbildet, dessen Schlüssel vom übergeben werden Feldnamen Parameter. Dieser Parameter ist optional. Wenn er jedoch nicht in der Datei angegeben ist, werden die Daten der ersten Zeile zu den Schlüsseln des Wörterbuchs.

Beispiel:

Importiere csv mit open ('name.csv') als csvfile: reader = csv.DictReader (csvfile) für die Zeile im Leser: print (row ['first_name'], Zeile ['last_name']) 

DictWriter

Diese Klasse ähnelt der DictWriter-Klasse und führt das Gegenteil aus. Dabei werden Daten in eine CSV-Datei geschrieben. Die Klasse ist definiert als csv.DictWriter(csvfile, Feldnamen, restval = ", extrasaction = 'erhöhen', dialect = 'Excel', * args, **kwds)

Das Feldnamen Parameter definiert die Reihenfolge der Schlüssel, die die Reihenfolge angeben, in der Werte im Wörterbuch in die CSV-Datei geschrieben werden. Im Gegensatz zum DictReader ist dieser Schlüssel nicht optional und muss definiert werden, um Fehler beim Schreiben in eine CSV zu vermeiden.

Dialekte und Formatierung

Ein Dialekt ist eine Hilfsklasse, mit der die Parameter für ein bestimmtes Objekt definiert werden Leser oder Schriftsteller Beispiel. Dialekte und Formatierungsparameter müssen beim Ausführen einer Lese- oder Schreibfunktion deklariert werden.

Es gibt mehrere Attribute, die von einem Dialekt unterstützt werden:

  • Trennzeichen: Eine Zeichenfolge, die zum Trennen von Feldern verwendet wird. Der Standardwert ist ','.
  • doppelte Anführungszeichen: Steuert, wie Instanzen von quotechar innerhalb eines Feldes erscheinen, sollte in Anführungszeichen gesetzt werden. Kann wahr oder falsch sein.
  • escapechar: Eine Zeichenfolge, die vom Writer verwendet wird, um die Zeichenfolge zu umgehen Trennzeichen ob zitieren ist eingestellt auf QUOTE_NONE.
  • Lineterminator: Eine Zeichenfolge, die zum Beenden von Zeilen verwendet wird Schriftsteller. Der Standardwert ist '\ r \ n'.
  • quotechar: Eine Zeichenfolge, die zum Angeben von Feldern mit Sonderzeichen verwendet wird. Der Standardwert ist'' '.
  • Skipititialspace: Wenn eingestellt auf Wahr, jeder weiße Raum unmittelbar nach dem Trennzeichen wird ignoriert.
  • streng: Wenn eingestellt aufWahr, Es wird ein Ausnahmefehler bei fehlerhafter CSV-Eingabe ausgelöst.
  • zitieren: Steuert, wann beim Lesen oder Schreiben in eine CSV Zitate generiert werden sollen.

Eine CSV-Datei lesen

Sehen wir uns an, wie Sie eine CSV-Datei mit den oben besprochenen Hilfsmodulen lesen können.

Erstellen Sie Ihre CSV-Datei und speichern Sie sie als example.csv. Stellen Sie sicher, dass es die .csv Erweiterung und füllen Sie einige Daten aus. Hier haben wir unsere CSV-Datei, die die Namen der Schüler und ihre Noten enthält.

Nachfolgend finden Sie den Code zum Lesen der Daten in unserem CSV mit beiden csv.reader Funktion und die csv.DictReader Klasse.

CSV-Datei mit csv.reader lesen

Importiere csv mit open ('example.csv') als File: reader = csv.reader (File, Trennzeichen = ",", quotechar = ",", quoting = csv.QUOTE_MINIMAL) für Zeile im Reader: print (row) 

Im obigen Code importieren wir das CSV-Modul und öffnen dann unsere CSV-Datei als Datei. Wir definieren dann das Leserobjekt und verwenden das csv.reader Methode zum Extrahieren der Daten in das Objekt. Wir durchlaufen dann die Leser Objekt abrufen und jede Zeile unserer Daten abrufen.

Wir zeigen die gelesenen Daten an, indem wir den Inhalt auf die Konsole drucken. Wir haben auch die erforderlichen Parameter wie Trennzeichen, Anführungszeichen und Notierungen angegeben.

Ausgabe

['first_name', 'last_name', 'Grade'] ['Alex', 'Brian', 'B'] ['Rachael', 'Rodriguez', 'A'] ['Tom', 'smith', 'C '] 

Eine CSV-Datei mit DictReader lesen

Wie bereits erwähnt, ermöglicht DictWriter das Lesen einer CSV-Datei, indem die Daten anstelle von Zeichenfolgen einem Wörterbuch zugeordnet werden csv.reader Modul. Obwohl der Feldname ein optionaler Parameter ist, ist es wichtig, dass Ihre Spalten zur besseren Lesbarkeit beschriftet sind.

So lesen Sie eine CSV mit der DictWriter-Klasse.

Import csv results = [] mit open ('example.csv') als File: reader = csv.DictReader (File) für Zeile im Reader: results.append (row) Druckergebnisse 

Wir importieren zunächst das csv-Modul und initialisieren eine leere Liste Ergebnisse die wir zum Speichern der abgerufenen Daten verwenden werden. Wir definieren dann das Leserobjekt und verwenden das csv.DictReader Methode zum Extrahieren der Daten in das Objekt. Wir durchlaufen dann die Leser Objekt abrufen und jede Zeile unserer Daten abrufen.

Zum Schluss hängen wir jede Zeile an die Ergebnisliste an und drucken den Inhalt an die Konsole.

Ausgabe

['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez ', ' Grade ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' grade ':' B ',' first_name ':' Jane ',' last_name ': 'Oscar', 'Grade': 'A', 'Vorname': 'Kennzy', 'Nachname': 'Tim'] 

Wie Sie oben sehen können, ist die Verwendung der DictReader-Klasse besser, da unsere Daten in einem Wörterbuchformat ausgegeben werden, das einfacher zu handhaben ist.

In eine CSV-Datei schreiben

Lassen Sie uns nun sehen, wie Sie mit dem Schreiben von Daten in eine CSV-Datei gehen csv.writer Funktion und die csv.Dictwriter Klasse, die zu Beginn dieses Tutorials besprochen wurde.

In eine CSV-Datei schreiben Mit csv.writer

Der folgende Code schreibt die definierten Daten in die example2.csv Datei.

import csv myData = [["first_name", "second_name", "Grade"], ['Alex', 'Brian', 'A'], ['Tom', 'Smith', 'B']] myFile = geöffnet ('example2.csv', 'w') mit myFile: writer = csv.writer (myFile) writer.writerows (myData) print ("Schreiben abgeschlossen") 

Zuerst importieren wir das csv-Modul und das Schriftsteller() Funktion erstellt ein Objekt, das zum Schreiben geeignet ist. Um die Daten über die Zeilen zu iterieren, müssen wir das verwenden Schriftsteller () Funktion.

Hier ist unser CSV mit den Daten, die wir geschrieben haben.

Schreiben in eine CSV-Datei mit DictWriter

Lassen Sie uns die folgenden Daten in eine CSV schreiben.

data = ['Note': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez', 'Klasse': 'C', 'Vorname': 'Tom', 'Nachname': 'smith', 'Klasse': 'B', 'Vorname': 'Jane', 'Nachname' ':' Oscar ', ' Grade ':' A ',' Vorname ':' Kennzy ',' Nachname ':' Tim '] 

Der Code ist wie unten gezeigt.

csv mit open ('example4.csv', 'w') als csv-Datei importieren: fieldnames = ['first_name', 'last_name', 'grade'] writer = csv.DictWriter (csvfile, fieldnames = fieldnames) writer.writeheader () writer.writerow ('grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian') writer.writerow ('grade': 'A', 'first_name': 'Rachael' , 'last_name': 'Rodriguez') writer.writerow ('Grade': 'B', 'first_name': 'Jane', 'last_name': 'Oscar') writer.writerow ('Grade': ' B ',' first_name ':' Jane ',' last_name ':' Loive ') print ("Schreiben abgeschlossen")

Wir definieren zuerst das Feldnamen, Dabei werden die Überschriften der einzelnen Spalten in der CSV-Datei dargestellt. Das writerrow () Die Methode schreibt jeweils in eine Zeile. Wenn Sie alle Daten gleichzeitig schreiben möchten, verwenden Sie die writerrows () Methode.

So schreiben Sie in alle Zeilen gleichzeitig.

csv mit open ('example5.csv', 'w') als csvfile importieren: fieldnames = ['first_name', 'last_name', 'grade'] writer = csv.DictWriter (csvfile, fieldnames = fieldnames) writer.writeheader () writer.writerows (['Klasse': 'B', 'Vorname': 'Alex', 'Nachname': 'Brian', 'Klasse': 'A', 'Vorname': 'Rachael', 'Nachname' ':' Rodriguez ', ' Klasse ':' C ',' Vorname ':' Tom ',' Nachname ':' smith ', ' Klasse ':' B ',' Vorname ':' Jane ', 'last_name': 'Oscar', 'Grade': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']) drucken ("Schreiben abgeschlossen")

Fazit

In diesem Lernprogramm wurde das meiste beschrieben, was zum erfolgreichen Lesen und Schreiben einer CSV-Datei mit den verschiedenen von Python bereitgestellten Funktionen und Klassen erforderlich ist. CSV-Dateien werden häufig in Softwareanwendungen verwendet, da sie einfach zu lesen und zu verwalten sind und aufgrund ihrer geringen Größe relativ schnell verarbeitet und übertragen werden können.

Zögern Sie nicht zu sehen, was wir für den Verkauf und zum Lernen auf dem Markt zur Verfügung haben, und zögern Sie nicht, Fragen zu stellen und mit dem untenstehenden Feed wertvolles Feedback zu geben.

Lerne Python

Lernen Sie Python mit unserem kompletten Python-Tutorial, egal ob Sie gerade erst anfangen oder ein erfahrener Programmierer sind, der neue Fähigkeiten erlernen möchte.