2012-04-18 4 views
0

私はwrite-csvを使用するclojure-csvライブラリの例を探しています。具体的には、議論はどのように形成されていますかなぜ以下のエラーが出るのか分かりません。ここでwrite-csvを使用するclojure-csvライブラリの例をお探しください

はエラーと私のコードの例です:

(def x [1 2 3 4]) 

(write-csv (spit "test.tmp" x) :end-of-line "\n")  

ArityException Wrong number of args (3) passed to: 
     core$write-csv clojure.lang.AFn.throwArity (AFn.java:437) 

はありがとうございました。

+0

1つの問題は、 'spit'が' nil'を返すということです。つまり、あなたが最初の引数として渡していることです。そして、 'write-csv'は文字列のシーケンスを期待するものとして文書化されています。' x'はそうではありません。 'write-csv [[" 1 "" 2 "" 3 "" 4 "])'と '(write-csv [[" 1 "" 2 "" 3 "" 4 "]) ]:行末 "\ n") '?それでもエラーは奇妙です... – ivant

+1

マスターからフェッチしていない限り、これは予想されます。 'write-csv'にオプションを追加することをサポートするリリースタグはありません。 –

答えて

3

EDITは、あなたの質問を読み違えると、あなたはClojureの-CSVライブラリを使用してについて尋ねた実現しませんでした。 clojure.data.csvを使用して他の誰かを助ける場合に備えて、このままにしておきます。

leiningenを使用している場合は、project.cljファイルに次の行を入力します。

(defproject so "example" 
    :dependencies [[org.clojure/clojure "1.3.0"] 
       [org.clojure/data.csv "0.1.2"]]) 

ファイル名とcsvに書き込むデータをとる関数を作成するコード例です。

(ns so.core 
    (:require [clojure.data.csv :as csv] 
      [clojure.java.io :as io])) 

(defn csv [filename data] 
    (with-open [f (io/writer filename)] 
    (csv/write-csv f data))) 

csvをreplから使用します。

so.core> (csv "example.csv" [["stack" 1] 
         ["example" 40]]) 

次に、example.csvの外観を示します。

$ cat example.csv 
stack,1 
example,40 

うまくいけば、これはアウトに役立ちます。

+0

ありがとうございました。私は今日までこれを必要とせず、うまくいった。 – octopusgrabbus

関連する問題