CSV-Dateien in Python: Lesen, Schreiben & Verarbeiten

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

CSV-Dateien in Python verarbeiten

CSV (Comma Separated Values) ist eines der am weitesten verbreiteten Formate zur Speicherung von Tabellendaten. Es wird in vielen Bereichen eingesetzt – vom Export aus Excel-Tabellen bis zum Datenaustausch zwischen Webdiensten und Datenbanken.

Python bietet leistungsstarke Werkzeuge für die Arbeit mit CSV-Dateien. Du kannst das integrierte Modul csv oder die mächtige Bibliothek pandas für die Datenanalyse nutzen. Dieser Artikel zeigt Dir, wie Du CSV-Dateien liest, schreibst, Daten verarbeitest, Fehler vermeidest und die Performance bei großen Dateien optimierst.

Grundlagen des CSV-Formats

Aufbau einer CSV-Datei

CSV ist ein einfaches Textformat. Jede Zeile der Datei enthält einen Datensatz. Die Werte in einem Datensatz werden durch spezielle Trennzeichen getrennt. Standardmäßig wird ein Komma verwendet, aber auch Semikolon, Tabulator oder senkrechter Strich sind möglich.

Der Inhalt einer typischen CSV-Datei sieht so aus:

Name,Alter,Stadt
Anna,25,Berlin
Jan,30,München

Vorteile des CSV-Formats

Das CSV-Format bietet mehrere wichtige Vorteile:

  • Einfache Struktur und gute Lesbarkeit
  • Unterstützung durch die meisten Programme und Programmiersprachen
  • Geringe Dateigröße im Vergleich zu anderen Formaten
  • Bearbeitung in Texteditoren möglich
  • Universalität für den Datenaustausch zwischen verschiedenen Systemen

Arbeiten mit CSV über das csv-Modul

Grundlagen des CSV-Lesens

Das Standardmodul csv in Python eignet sich für grundlegende CSV-Operationen. Zum einfachen Einlesen von Daten verwendest Du diesen Ansatz:

import csv

with open("daten.csv", newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

Ergebnis der Ausführung:

['Name', 'Alter', 'Stadt']
['Anna', '25', 'Berlin']
['Jan', '30', 'München']

Lesen mit Kopfzeilen

Für die komfortable Arbeit mit benannten Spalten verwendest Du csv.DictReader:

with open("daten.csv", encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["Name"], row["Stadt"])

Diese Methode erstellt automatisch Wörterbücher für jede Zeile. Die Schlüssel sind die Werte aus der ersten Zeile der Datei.

Daten in eine CSV-Datei schreiben

Einfaches Schreiben von Zeilen

Die grundlegende Methode zum Schreiben von Daten verwendet csv.writer:

with open("ausgabe.csv", mode='w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(["Name", "Alter"])
    writer.writerow(["Olaf", 35])

Schreiben von Dictionary-Daten

Für strukturierte Daten ist csv.DictWriter praktisch:

daten = [
    {"Name": "Maria", "Alter": 28},
    {"Name": "Alex", "Alter": 40},
]

with open("personen.csv", "w", newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=["Name", "Alter"])
    writer.writeheader()
    writer.writerows(daten)

Anpassung von Lese- und Schreibparametern

Das csv-Modul erlaubt die Anpassung verschiedener Parameter:

  • delimiter: Angabe des Feldtrennzeichens
  • quotechar: Zeichen zum Einschließen von Werten in Anführungszeichen
  • skipinitialspace: Überspringen von Leerzeichen nach dem Trennzeichen
  • lineterminator: Zeichen für das Zeilenende

Arbeiten mit CSV in der pandas-Bibliothek

Installation und Import von pandas

Die Bibliothek pandas bietet noch leistungsfähigere Möglichkeiten für die Arbeit mit CSV-Dateien:

pip install pandas

CSV-Dateien mit pandas einlesen

Die Hauptmethode zum Einlesen von CSV-Dateien:


                    

Blogs

Buchempfehlungen