Arbeiten mit CSV in Swift (iOS/macOS): Die Bibliothek SwiftCSV und Grundlagen des Parsings

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

Arbeiten mit CSV in Swift (iOS/macOS): Die Bibliothek SwiftCSV und Grundlagen des Parsings



CSV (Comma-Separated Values) ist eines der beliebtesten Formate zur Speicherung von Tabellendaten. Im Apple-Ökosystem (iOS, macOS) wird die Arbeit mit CSV-Dateien häufig für den Import von Daten aus externen Quellen, den Export von Berichten oder das Laden von Konfigurationen benötigt. In diesem Artikel betrachten wir die Bibliothek SwiftCSV – eine leichte und benutzerfreundliche Lösung zum Parsen von CSV in Swift – sowie grundlegende Beispiele für die Arbeit mit diesem Format ohne externe Abhängigkeiten.



Was ist SwiftCSV?



SwiftCSV ist eine Open-Source-Bibliothek für Swift, die das einfache Lesen und Verarbeiten von CSV-Dateien ermöglicht. Sie unterstützt sowohl das Parsen von Strings als auch die Arbeit mit Dateien, erkennt automatisch Trennzeichen (Komma, Tabulator, Semikolon) und bietet eine praktische API für den Zugriff auf Zeilen, Spalten und einzelne Zellen.



Hauptfunktionen:

  • Parsen von CSV aus String, Data oder URL (lokal oder remote).
  • Unterstützung von Spaltenüberschriften (erste Zeile als Schlüssel).
  • Arbeit mit verschachtelten Anführungszeichen und escaped Zeichen.
  • Möglichkeit zur Auswahl des Trennzeichens (Komma, Tabulator, benutzerdefiniert).
  • Minimale Anzahl von Abhängigkeiten (reines Swift).


Installation von SwiftCSV



Fügen Sie die Bibliothek über den Swift Package Manager (SPM) hinzu:

  1. Wählen Sie in Xcode File → Add Packages....
  2. Fügen Sie die Repository-URL ein: https://github.com/swiftcsv/SwiftCSV.git.
  3. Wählen Sie die Version (empfohlen wird die neueste stabile Version).
  4. Fügen Sie das Paket zu Ihrem Target hinzu.


Oder fügen Sie es in Package.swift hinzu:

dependencies: [    .package(url: "https://github.com/swiftcsv/SwiftCSV.git", from: "0.9.0")]


Basisbeispiel: CSV aus einem String lesen



Angenommen, wir haben einen CSV-String mit Benutzerdaten:

let csvString = """name,age,cityAlice,30,New YorkBob,25,Los AngelesCharlie,35,Chicago"""


Parsen wir ihn mit SwiftCSV:

import SwiftCSV

do { let csv = try CSV(string: csvString) // Zugriff auf Zeilen als Wörterbücher (Schlüssel sind Überschriften) for row in csv.rows { if let name = row["name"], let age = row["age"], let city = row["city"] { print("\\(name) (\\(age) Jahre) wohnt in \\(city)") } }} catch { print("Parsing-Fehler: \\(error)")}


Ausgabe:

Alice (30 Jahre) wohnt in New YorkBob (25 Jahre) wohnt in Los AngelesCharlie (35 Jahre) wohnt in Chicago


CSV aus einer Datei lesen (iOS/macOS)



Zum Laden von CSV aus einer lokalen Datei (z. B. im Ordner Documents oder aus dem Bundle):

import SwiftCSV

// Pfad zur Datei (z. B. in Documents)let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("data.csv")

do { let csv = try CSV(url: fileURL) // Zugriff auf Spalten let names = csv.columns["name"] ?? [] print("Alle Namen: \\(names)")} catch { print("Fehler: \\(error)")}


Für eine Datei aus dem Bundle:

if let path = Bundle.main.path(forResource: "data", ofType: "csv") {    let url = URL(fileURLWithPath: path)    let csv = try CSV(url: url)    // Arbeit mit Daten}


Benutzerdefinierte Trennzeichen und Einstellungen



Wenn Ihr CSV Tabulatoren oder Semikolons verwendet, geben Sie das Trennzeichen explizit an:

// TSV (Tab-Separated Values)let tsv = try CSV(string: "name\\tageAlice\\t30", delimiter: .tab)

// Trennzeichen — Semikolonlet csvSemicolon = try CSV(string: "name;ageAlice;30", delimiter: Character(";"))


Sie können auch das Parsen von Überschriften deaktivieren (die erste Zeile wird dann als normale Zeile behandelt):

let csvNoHead                    

Empfehlungen