Clojure:
Робота з CSV

Як це зробити:

Читання файлу CSV

Clojure стандартно не має вбудованого парсингу CSV, але ви можете використовувати бібліотеку clojure.data.csv для цієї мети. Спочатку додайте бібліотеку до залежностей вашого проекту.

У вашому project.clj додайте таку залежність:

[clojure.data.csv "1.0.0"]

Для того, щоб прочитати файл CSV і вивести кожен рядок:

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

(with-open [reader (io/reader "шлях/до/вашогогофайлу.csv")]
  (doall
   (map println (csv/read-csv reader))))

Це виведе кожен рядок CSV як вектор Clojure.

Запис в файл CSV

Для запису даних у файл CSV ви можете використовувати ту саму бібліотеку 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 "шлях/до/outputfile.csv")]
    (csv/write-csv writer data)))

Це створить або перезапише outputfile.csv, заповнюючи його вказаними даними.

Використання бібліотеки стороннього розробника: clojure.data.csv

Хоча clojure.data.csv можна вважати найпростішою бібліотекою для обробки CSV у Clojure, для складніших завдань, таких як обробка CSV зі спеціальними символами або нестандартними роздільниками, ви можете розглянути додаткові варіанти в екосистемі або навіть розглянути можливість Java інтероперації з бібліотеками, такими як Apache Commons CSV. Однак, для більшості стандартних завдань обробки CSV у Clojure, clojure.data.csv забезпечує простий та ефективний набір інструментів.