So lesen und analysieren Sie eine CSV-Datei in Python
Erfahren Sie, wie Sie CSV-Dateien in Python mithilfe des integrierten CSV-Moduls lesen und analysieren. Meistern Sie das Lesen als Listen, Wörterbuch-Reader und benutzerdefinierte Trennzeichen.
Übersicht
CSV (Comma-Separated Values) ist ein allgegenwärtiges Dateiformat zum Speichern tabellarischer Datensätze. Egal, ob Sie Datenbanken importieren, Tabellen exportieren oder Protokolle herunterladen, das Lesen von CSV-Dateien ist eine Kernkompetenz. Python enthält ein dediziertes, hochoptimiertes integriertes „CSV“-Modul zum einfachen Parsen von CSV-Dateien, ohne dass Bibliotheken von Drittanbietern wie Pandas erforderlich sind.
Die Funktion „csv.reader“ liest eine Datei Zeile für Zeile und analysiert sie, teilt jede Zeile durch das Komma-Trennzeichen auf und gibt Listen mit Zeichenfolgen zurück. Wenn Ihre CSV-Datei eine Kopfzeile hat (z. B. Spaltenbeschriftungen), wird häufig die Verwendung von „csv.DictReader“ bevorzugt. Jede Zeile wird automatisch in ein Wörterbuch analysiert, in dem die Spaltenbezeichnungen die Schlüssel sind, wodurch der Code viel lesbarer und robuster gegenüber Änderungen in der Spaltenreihenfolge wird.
Beim Öffnen von CSV-Dateien empfiehlt es sich, „newline=""` in der `open()`-Anweisung festzulegen. Dies verhindert, dass Python automatisierte Zeilenumbrüche durchführt, was auf bestimmten Betriebssystemen zu Parsing-Fehlern führen kann. Geben Sie außerdem immer „encoding="utf-8"` an, um Sonderzeichen zu verarbeiten.
Code- und Ausführungsausgabe
Dieses Skript demonstriert das Schreiben einer Beispiel-CSV-Datei und deren Lesen mit csv.reader und csv.DictReader.
import csv
# Writing a sample CSV file
sample_content = [
["name", "role", "salary"],
["Alice", "Developer", "90000"],
["Bob", "Manager", "110000"]
]
with open("employees.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows(sample_content)
# 1. Reading CSV using csv.reader (List representation)
print("--- Using csv.reader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
reader = csv.reader(file)
header = next(reader) # Skip header row
print("Header:", header)
for row in reader:
print(f"Employee: {row[0]} | Role: {row[1]}")
# 2. Reading CSV using csv.DictReader (Dictionary representation)
print("\n--- Using csv.DictReader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
dict_reader = csv.DictReader(file)
for row in dict_reader:
print(f"Name: {row['name']} | Role: {row['role']} | Salary: {row['salary']}")--- Using csv.reader ---
Header: ['name', 'role', 'salary']
Employee: Alice | Role: Developer
Employee: Bob | Role: Manager
--- Using csv.DictReader ---
Name: Alice | Role: Developer | Salary: 90000
Name: Bob | Role: Manager | Salary: 110000Schrittweise Umsetzung
- Importieren Sie das integrierte CSV-Modul in Ihr Skript.
- Öffnen Sie die CSV-Datei mit open("employees.csv", "r", newline="", binding="utf-8") als Datei.
- Übergeben Sie das Dateiobjekt an csv.reader(file), um die Dateizeilen als Zeichenfolgenlisten zu analysieren.
- Verwenden Sie csv.DictReader(file), um Zeilen als Wörterbuchzuordnungen zu analysieren, die den Spaltenüberschriften entsprechen.
Häufig gestellte Fragen
Warum sollte ich beim Öffnen einer CSV-Datei newline="" setzen?
Das Festlegen von newline="" verhindert, dass Python Zeilenendezeichen dynamisch ändert, und stellt so sicher, dass das CSV-Modul Zeilenumbrüche im CSV-Stil auf verschiedenen Betriebssystemen korrekt analysieren kann.
Wie analysiere ich eine CSV-Datei, die Tabulatoren oder Semikolons anstelle von Kommas verwendet?
Sie können der Lesefunktion ein benutzerdefiniertes Trennzeichen übergeben: csv.reader(file, delimiter="\t") oder csv.reader(file, delimiter=";").
Verwandte Themen
Erfahren Sie, wie Sie Dateien in Python lesen. Beherrschen Sie die Open-Anweisung, Readline, Readlines und den sicheren Umgang mit Dateiausnahmen.
So schreiben Sie in Python in eine DateiErfahren Sie, wie Sie in Python Text in Dateien schreiben. Meistern Sie den Unterschied zwischen den Modi „Schreiben“ („w“) und Anhängen („a“) mit sicheren Kontextmanagern.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Datei-I/O
Erfahren Sie, wie Sie Dateien in Python lesen und schreiben. Beherrschen Sie open(), read(), write() und Kontextmanager, um Dateivorgänge sicher und ohne Ressourcenverluste abzuwickeln.
Spickzettel für Python-Dateioperationen
Kurzreferenz zum Lesen und Schreiben von Dateien in Python. Beherrschen Sie Öffnungsmodi, Kontextmanager und zeilenweises Lesen.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.