Clojure:
Travailler avec CSV

Comment faire :

Lire un fichier CSV

Clojure n’a pas d’analyseur CSV intégré dans sa bibliothèque standard, mais vous pouvez utiliser la bibliothèque clojure.data.csv à cet effet. Tout d’abord, ajoutez la bibliothèque à vos dépendances de projet.

Dans votre project.clj, ajoutez la dépendance suivante :

[clojure.data.csv "1.0.0"]

Pour lire un fichier CSV et imprimer chaque ligne :

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

(with-open [reader (io/reader "chemin/vers/votrefichier.csv")]
  (doall
   (map println (csv/read-csv reader))))

Cela affichera chaque ligne du CSV comme un vecteur Clojure.

Écrire dans un fichier CSV

Pour écrire des données dans un fichier CSV, vous pouvez utiliser la même bibliothèque 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 "chemin/vers/fichierdesortie.csv")]
    (csv/write-csv writer data)))

Cela crée ou écrase fichierdesortie.csv, le remplissant avec les données spécifiées.

Utiliser une bibliothèque tierce : clojure.data.csv

Bien que clojure.data.csv soit sans doute la bibliothèque la plus simple pour la manipulation de CSV dans Clojure, pour des tâches plus complexes, telles que la gestion de CSV contenant des caractères spéciaux ou des délimiteurs non conventionnels, vous pourriez explorer des options supplémentaires au sein de l’écosystème ou même considérer l’interopérabilité Java avec des bibliothèques telles qu’Apache Commons CSV. Cependant, pour la plupart des tâches de traitement de CSV standards dans Clojure, clojure.data.csv fournit un ensemble d’outils simples et efficaces.