CSV-Dateien in Python lesen und schreiben: Ein umfassender Leitfaden
CSV-Dateien in Python lesen und schreiben: Ein umfassender Leitfaden
Was ist eine CSV-Datei?
CSV-Beispieldatei
Unten ist eine typische CSV-Darstellung einer kleinen Programmiersprachen-Datenbank. Die erste Zeile enthält Spaltenüberschriften, gefolgt von Datenzeilen.
Tabellendaten
| Programmiersprache | Entworfen von | Erschienen | Erweiterung |
|---|---|---|---|
| Python | Guido van Rossum | 1991 | .py |
| Java | James Gosling | 1995 | .java |
| C++ | Bjarne Stroustrup | 1983 | .cpp |
CSV-Daten
Programmiersprache,Entworfen von,Erschienen,Erweiterung Python,Guido van Rossum,1991,.py Java,James Gosling,1995,.java C++,Bjarne Stroustrup,1983,.cpp
Pythons eingebautes csv-Modul
Das csv-Modul bietet Low-Level-Tools für das Lesen und Schreiben von CSV-Dateien. Es handhabt Quoting, Delimiter und Zeilenterminatoren automatisch, was die Notwendigkeit manueller String-Manipulation reduziert.
Wichtige Funktionen
csv.reader()– Iteriert über Zeilen als Listen.csv.DictReader()– Konvertiert Zeilen in Dictionaries, geschlüsselt nach Spaltennamen.csv.writer()– Schreibt Zeilen in eine CSV-Datei.csv.DictWriter()– Schreibt Dictionaries in eine CSV-Datei.- Dialekt-Helfer:
csv.get_dialect(),csv.list_dialects(),csv.register_dialect(),csv.unregister_dialect().
CSV-Datei lesen
Unten ist ein minimales, produktionsreifes Beispiel, das eine CSV-Datei liest und jede Zeile als Python-Liste ausgibt.
import csv
with open('daten.csv', mode='r', newline='', encoding='utf-8') as datei:
reader = csv.reader(datei)
for zeile in reader:
print(zeile)
Die Ausgabe wird sein:
["Programmiersprache", "Entworfen von", "Erschienen", "Erweiterung"] ["Python", "Guido van Rossum", "1991", ".py"] ["Java", "James Gosling", "1995", ".java"] ["C++", "Bjarne Stroustrup", "1983", ".cpp"]
CSV in ein Dictionary lesen
Die Verwendung von csv.DictReader ordnet die Header-Zeile automatisch Dictionary-Keys zu, was die Datenhandhabung vereinfacht.
import csv
with open('daten.csv', mode='r', newline='', encoding='utf-8') as datei:
reader = csv.DictReader(datei)
for zeile in reader:
print(zeile)
Resultierende Dictionaries:
{"Programmiersprache": "Python", "Entworfen von": "Guido van Rossum", "Erschienen": "1991", "Erweiterung": ".py"}
{"Programmiersprache": "Java", "Entworfen von": "James Gosling", "Erschienen": "1995", "Erweiterung": ".java"}
{"Programmiersprache": "C++", "Entworfen von": "Bjarne Stroustrup", "Erschienen": "1983", "Erweiterung": ".cpp"}
CSV-Datei schreiben
csv.DictWriter Klassen lassen Sie Daten effizient schreiben.
import csv
zeilen = [
["Programmiersprache", "Entworfen von", "Erschienen", "Erweiterung"],
["Python", "Guido van Rossum", "1991", ".py"],
["Java", "James Gosling", "1995", ".java"],
["C++", "Bjarne Stroustrup", "1983", ".cpp"],
]
with open('schreibeDaten.csv', mode='w', newline='', encoding='utf-8') as datei:
writer = csv.writer(datei, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
writer.writerows(zeilen)
Das generierte schreibeDaten.csv wird dem Originalbeispiel entsprechen.
Pandas für CSV-Operationen verwenden
Pandas vereinfacht CSV-Handling, indem es Daten in ein DataFrame lädt, was mächtige Datenmanipulation mit minimalem Code ermöglicht. Installieren mit pip install pandas, falls nicht bereits verfügbar.
Mit Pandas lesen
import pandas as pd
df = pd.read_csv('daten.csv')
print(df)
Ausgabe:
Programmiersprache Entworfen von Erschienen Erweiterung 0 Python Guido van Rossum 1991 .py 1 Java James Gosling 1995 .java 2 C++ Bjarne Stroustrup 1983 .cpp
Mit Pandas schreiben
import pandas as pd
daten = {
'Programmiersprache': ['Python', 'Java', 'C++'],
'Entworfen von': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
'Erschienen': ['1991', '1995', '1983'],
'Erweiterung': ['.py', '.java', '.cpp'],
}
df = pd.DataFrame(daten)
df.to_csv('pandaergebnis.csv', index=False)
print(df)
Die resultierende CSV ist identisch zum Original, aber das DataFrame bietet erweiterte Analysefunktionen.
Fazit
Pythons csv-Modul und Pandas bieten robuste, einfach zu verwendende Tools für das Lesen, Schreiben und Manipulieren von CSV-Dateien. Die Beherrschung dieser Bibliotheken ermöglicht effiziente Datenworkflows über Webservices, ETL-Pipelines und wissenschaftliche Forschung. Beginnen Sie noch heute mit dem Experimentieren und integrieren Sie CSV-Handling in Ihre Projekte mit Vertrauen.
Python
- Python-Schlüsselwörter & Bezeichner: Reservierte Wörter & Benennungskonventionen meistern
- Python-Anweisungen, Einrückung & Kommentare: Klare Anleitung
- Python-Variablen, Konstanten & Literale – Umfassender Leitfaden
- Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
- Python I/O & Modul-Importe meistern: Praxisleitfaden
- Python Global, Local & Nonlocal Variablen verstehen
- Python File I/O: Dateioperationen, Lesen, Schreiben und Verwaltung meistern
- Verzeichnis- und Dateioperationen in Python meistern
- Python-Fehler & eingebaute Exceptions meistern
- Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden