clojure
:dependencies [[org.clojure/clojure "1.10.1"]
[com.opencsv/opencsv "5.5"]]
clojure
(ns my-csv.core
(:import [com.opencsv.CSVReader CSVWriter]))
(defn read-csv [csv-file]
(with-open [reader (CSVReader. (clojure.java.io/reader csv-file))]
(doall (mapv vec (.readAll reader)))))
(defn write-csv [csv-file data]
(with-open [writer (CSVWriter. (clojure.java.io/writer csv-file))]
(doseq [row data]
(.writeNext writer (into-array String row)))))
clojure
(def data (read-csv "data.csv"))
(pprint data)
(def new-data [["Name" "Age" "City"]
["Alice" "25" "Beijing"]
["Bob" "30" "Shanghai"]
["Charlie" "35" "Guangzhou"]])
(write-csv "new-data.csv" new-data)