Wie liest man CSV in Python zur Liste

Afia Ghazanfar 10 Oktober 2023
  1. CSV in eine Liste in Python mit csv.reader einlesen
  2. Einlesen von CSV in eine Liste in Python unter Verwendung von csv.reader mit anderen Begrenzern
Wie liest man CSV in Python zur Liste

Dieser Artikel führt ein, wie man CSV liest, um in Python aufzulisten.

Nehmen wir an, wir haben eine CSV-Datei Employees.csv mit dem folgenden Inhalt darin,

Id Name Department email Salary
1 Sam Human Resource sam@gmail.com 65K
2 John Management john@gmail.com 58K
3 Tony IT tony@gmail.com 70K
4 Mike Accounts mike@gmail.com 35K

Wenn Sie diese Datei mit einem Texteditor öffnen, sollte ihr Inhalt wie folgt aussehen.

Id,Name,Department,email,Salary
1,Sam,Human Resource,sam@gmail.com,65K
2,John,Management,john@gmail.com,58K
3,Tonny,IT,tonny@gmail.com,70K
4,Mike,Accounts,mike@gmail.com,35K

Nun werden wir die obigen Daten dieser CSV-Datei in eine Python-Liste importieren.

CSV in eine Liste in Python mit csv.reader einlesen

Python hat ein eingebautes Modul namens CSV, das über eine Reader-Klasse verfügt, um den Inhalt einer CSV-Datei zu lesen. Der Beispielcode zum Lesen der CSV-Datei in eine Liste in Python lautet wie folgt.

from csv import reader

with open("Employees.csv", "r") as csv_file:
    csv_reader = reader(csv_file)
    # Passing the cav_reader object to list() to get a list of lists
    list_of_rows = list(csv_reader)
    print(list_of_rows)

csv_reader = reader(csv_file) übergibt das Datei-Objekt csv_file an die Funktion csv.reader() und erhält das reader-Objekt. Es gibt einen Iterator zurück, der zur Iteration über alle Zeilen der CSV-Datei verwendet wird.

list_of_rows = list(csv_reader) konvertiert das csv.reader-Objekt in eine Liste von Listen, wobei jedes Element der Liste eine CSV-Zeile bedeutet und jedes Element in dem Listenelement eine Zelle oder Spalte in einer Zeile darstellt.

Ausgabe:

[['Id', 'Name', 'Company', 'email', 'Salary'], 
['1', 'Sam', 'Human Resource', 'sam@gmail.com', '65K'], 
['2', 'John', 'Management', 'john@gmail.com', '58K'], 
['3', 'Tonny', 'IT', 'tonny@gmail.com', '70K'], 
['4', 'Mike', 'Accounts', 'mike@gmail.com', '35K']]

Einlesen von CSV in eine Liste in Python unter Verwendung von csv.reader mit anderen Begrenzern

Die Funktion csv.reader bietet auch die Möglichkeit, Textdateien zu lesen, in denen Werte nicht durch ein Komma, sondern durch ein anderes Zeichen getrennt sind. Das Trennzeichen könnte zum Beispiel ein Tabulator oder ein Leerzeichen sein. Um solche Dateien zu lesen, müssen wir der Lesefunktion einen zusätzlichen Parameter delimiter übergeben. Siehe das Beispiel unten.

Wenn wir eine Datei Employees_TSV.csv mit dem gleichen Inhalt wie in Employees.csv haben, aber durch Tabulator statt Komma getrennt, d.h.

from csv import reader

with open("Employees_TSV.csv", "r") as csv_file:
    csv_reader = reader(csv_file, delimiter="\t")
    list_of_rows = list(csv_reader)
    print(list_of_rows)

Wir lesen Daten aus einer tabulatorgetrennten Wertedatei im obigen Code. delimiter = '\t' gibt an, dass das Trennzeichen in der CSV-Datei der Tabulator ist.

Die Ausgabe dieses Codes ist die gleiche wie die obige.

Verwandter Artikel - Python List

Verwandter Artikel - Python CSV