LoginSignup
4
4

More than 5 years have passed since last update.

Clojure clojure-csv の使い方

Posted at

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

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4