Clojure:
Lavorare con i CSV

Come fare:

Leggere un File CSV

Clojure non ha un’analisi CSV incorporata nella sua libreria standard, ma puoi usare la libreria clojure.data.csv per questo scopo. Prima, aggiungi la libreria alle dipendenze del tuo progetto.

Nel tuo project.clj, aggiungi la seguente dipendenza:

[clojure.data.csv "1.0.0"]

Per leggere un file CSV e stampare ogni riga:

(require '[clojure.data.csv :as csv]
         '[clojure.java.io :as io])

(with-open [reader (io/reader "path/to/yourfile.csv")]
  (doall
   (map println (csv/read-csv reader))))

Questo stamperà ogni riga del CSV come un vettore di Clojure.

Scrivere su un File CSV

Per scrivere dati su un file CSV, puoi usare la stessa libreria clojure.data.csv:

(require '[clojure.data.csv :as csv]
         '[clojure.java.io :as io])

(let [data [["id" "name" "age"]
            ["1" "John Doe" "28"]
            ["2" "Jane Doe" "31"]]]
  (with-open [writer (io/writer "path/to/outputfile.csv")]
    (csv/write-csv writer data)))

Questo crea o sovrascrive outputfile.csv, riempiendolo con i dati specificati.

Usare una Libreria di Terze Parti: clojure.data.csv

Sebbene clojure.data.csv sia probabilmente la libreria più diretta per la gestione dei CSV in Clojure, per compiti più complessi, come la gestione di CSV con caratteri speciali o delimitatori non convenzionali, potresti esplorare opzioni aggiuntive all’interno dell’ecosistema o addirittura considerare l’interop di Java con librerie come Apache Commons CSV. Tuttavia, per la maggior parte dei compiti standard di elaborazione CSV in Clojure, clojure.data.csv fornisce un insieme di strumenti semplice ed efficace.