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.
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:
Das CSV-Modul verfügt über mehrere Funktionen und Klassen zum Lesen und Schreiben von CSVs. Dazu gehören:
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)
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 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.
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'])
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.
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:
','
.QUOTE_NONE
.Schriftsteller
. Der Standardwert ist '\ r \ n'
.'' '
.Wahr
, jeder weiße Raum unmittelbar nach dem Trennzeichen wird ignoriert.Wahr
, Es wird ein Ausnahmefehler bei fehlerhafter CSV-Eingabe ausgelöst.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.
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 ']
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.
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.
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.
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")
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.
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.