Lesen einer CSV mit Kopfzeile in Python
Python ist eine eindeutige und leicht verständliche Allzweck-Programmiersprache.
Python ist eine der fünf wichtigsten Programmiersprachen weltweit, da es eine unkomplizierte Syntax und viele Dienstprogramme für mehrere Domänen wie maschinelles Lernen, Datenwissenschaft, Spieleentwicklung, Webentwicklung, App-Entwicklung usw. hat. Dank der APIs, die hinter dem Szenen.
Python macht das Dateihandling zu einer nahtlosen Aufgabe. Wir können mit Python problemlos Dateien erstellen, Dateien lesen, Daten anhängen oder Daten in bestehenden Dateien überschreiben, da es viele Dateiformate wie txt
, csv
, xlsx
, pdf
usw. verarbeiten kann.
Darüber hinaus gibt es viele Open-Source-Pakete, die die Handhabung von Dateien effizienter und einfacher machen.
In diesem Artikel erfahren Sie, wie Sie eine CSV-Datei und ihren Header mit Python lesen. Damit wir auf dem gleichen Stand sind, verwenden wir eine Beispieldatei zur Veranschaulichung in den Codeschnipseln. Sie können diese CSV-Datei von hier herunterladen. Die folgenden Beispiele betrachten die erste Zeile der CSV-Datei als Kopfzeile.
Lesen einer CSV-Datei mit ihrer Kopfzeile in Python
Python hat ein csv
-Paket, mit dem wir CSV-Dateien lesen können. Dieses Paket ist standardmäßig in der offiziellen Python-Installation vorhanden.
Das Paket csv
hat eine Methode reader()
, mit der wir CSV-Dateien lesen können. Es gibt ein iterierbares Objekt zurück, das wir durchlaufen können, um den Inhalt der gelesenen CSV-Datei zu drucken.
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file)
for row in csv_reader:
print(row)
Ausgabe:
['Login email', 'Identifier', 'First name', 'Last name']
['laura@example.com', '2070', 'Laura', 'Grey']
['craig@example.com', '4081', 'Craig', 'Johnson']
['mary@example.com', '9346', 'Mary', 'Jenkins']
['jamie@example.com', '5079', 'Jamie', 'Smith']
Die Zeitkomplexität der obigen Lösung ist O(n)
.
Wie wir sehen, zeigt die Ausgabe, dass die erste Zeile die Kopfzeile ist und die anderen Zeilen die Werte enthalten. Wir können die Ausgabe weiter verschönern, indem wir den Header in einer separaten Variablen speichern und alles in einem passend aussehenden Format drucken.
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file)
header = next(csv_reader)
print("Header:")
print(", ".join(header))
print("Values:")
for row in csv_reader:
print(", ".join(row))
Ausgabe:
Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith
Die Zeitkomplexität der obigen Lösung ist O(n)
.
Im obigen Code ist csv_reader
iterierbar. Mit der Methode next()
haben wir zuerst den Header von csv_reader
geholt und dann mit einer for
-Schleife über die Werte iteriert.
Wie der Name schon sagt, haben CSV-Dateien durch Kommas getrennte Werte.
Manchmal werden Werte in CSV-Dateien nicht durch Kommas getrennt; sie könnten ein Semikolon (;
), einen Doppelpunkt (:
) usw. als Trennzeichen verwenden. In solchen Fällen kann man das Argument delimiter
der Methode reader()
aus dem Paket csv
verwenden.
Das Argument delimiter
akzeptiert eine Zeichenkette oder ein Zeichen, das als Trennzeichen betrachtet werden soll. Zum Beispiel, wenn eine CSV-Datei ;
als Trennzeichen wäre der Code zum Lesen einer solchen CSV-Datei wie folgt.
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file, delimiter=";") # Important
header = next(csv_reader)
print("Header:")
print(", ".join(header))
print("Values:")
for row in csv_reader:
print(", ".join(row))
Ausgabe:
Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith
Verwandter Artikel - Python CSV
- Importieren Sie mehrere CSV-Dateien in Pandas und verketten Sie sie zu einem DataFrame
- Python teilt CSV in mehrere Dateien auf
- Vergleichen Sie zwei CSV-Dateien und drucken Sie Unterschiede mit Python
- Konvertieren XML in CSV mit Python
- Lesen CSV Zeile für Zeile in Python
- Python Schreiben in CSV Zeile für Zeile