CSV の読み書きをするライブラリ。 returns a lazy sequence of vectors of strings
とのこと。
Clojure clojure.data.csv の使い方 とだいたい同じ。こっちのほうがちょっと多機能っぽい気がする。あと write がデフォルトで文字列を返すのでこっちのほうが若干とっつきやすい。
GitHub
https://github.com/davidsantiago/clojure-csv
ドキュメントは README しか見つからなかった。
(ns clj-clojure-csv.core)
(require '[clojure-csv.core :as csv])
(let [filename "usa-states.csv"
csv (slurp filename)
rows (csv/parse-csv csv)]
rows)
(let [filename "usa-states.csv"
csv (slurp filename)
rows (csv/parse-csv csv)]
(doseq [row rows]
(let [code (first row)
name (second row)]
(println (str code " => " name)))))
(let [filename "test.ltsv"
csv (slurp filename)
rows (csv/parse-csv csv :delimiter \tab)]
rows)
(let [filename "test.ltsv"
csv (slurp filename)
rows (csv/parse-csv csv :delimiter \tab)]
(map (fn [row]
(str (first row) " => " (second row)))
rows))
(csv/write-csv [["foo" "bar"]
["baz" "qux"]])
(csv/write-csv [["foo" "bar"]
["baz" "qux"]
["I'm" "pen"]]
:delimiter \tab)
(println
(csv/write-csv [["foo" "bar"]
["baz" "qux"]]
:force-quote true))
(println
(csv/write-csv [["foo" "bar"]
["baz" "qux"]]
:quote-char \!
:force-quote true))
(csv/write-csv [["foo" "bar"]
["baz" "qux"]]
:end-of-line \newline)
サンプルコードとサンプルデータ
https://github.com/kyanny/playground/tree/gh-pages/clj-clojure-csv