Lesen einer CSV mit Kopfzeile in Python

Vaibhav Vaibhav 23 Januar 2022
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
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python CSV