如何在Clojure序列的末尾添加非引号分隔符
我有一系列序列中的数据行,每个序列都不同,但遵循以下一般模式:如何在Clojure序列的末尾添加非引号分隔符,clojure,Clojure,我有一系列序列中的数据行,每个序列都不同,但遵循以下一般模式: (“44999”“186300”“194300”“0”“380600”“325”“57”“0”) 当我使用 (defn write-csv-file "Writes a csv file using a key and an s-o-s" [out-sos out-file] (if (= dbg 1) (println (first out-sos), "\n", out-file)) (spit ou
(“44999”“186300”“194300”“0”“380600”“325”“57”“0”)
当我使用
(defn write-csv-file
"Writes a csv file using a key and an s-o-s"
[out-sos out-file]
(if (= dbg 1)
(println (first out-sos), "\n", out-file))
(spit out-file "" :append false)
(with-open [out-data (io/writer out-file)]
(csv/write-csv out-data out-sos)))
.
.
.
(write-csv-file out-re "re_values.csv")
数据是这样出来的
44999186300194300,0380600325,57,0
这正是我想要的方式(无引号),除了,我希望在每个序列的末尾有一个无引号的'
我尝试了(concat一行(list\,)
,并尝试在(list
函数中的每个序列末尾添加一个“,”,但我无法在每个序列末尾获得一个不带引号的“,”。我如何才能做到这一点
作为一种解决方法,我可以通过sed运行这样的文件来添加尾随逗号,但我希望在Clojure中完成所有操作。您是否尝试过:行尾设置为“,\n” 这就是文件中所说的: :行尾 包含用于写入CSV文件的行尾字符的字符串 默认值:\n 这就是我所尝试的:
(csv/write-csv data :end-of-line ",\n")
是否尝试:行尾设置为“,\n” 这就是文件中所说的: :行尾 包含用于写入CSV文件的行尾字符的字符串 默认值:\n 这就是我所尝试的:
(csv/write-csv data :end-of-line ",\n")
我认为您不想“添加逗号”,而是要添加一个空字段(然后用逗号分隔)。因此,您只需在行序列中添加一个空字符串。我认为您不想“添加逗号”,而是要添加一个空字段(然后用逗号分隔)。因此,您只需在行序列中添加一个空字符串。也许concat会在sos内部的每个序列中添加一个空字符串。concat是惰性的,因此不应该太昂贵
(with-open [out-data (io/writer out-file)]
(csv/write-csv out-data (map #(concat % [""]) out-sos))))
但是,不确定csv库在结尾处使用空字符串会做什么。希望您只获得空元素。可能会在sos内部的每个序列中使用空字符串。concat是惰性的,因此不应该太昂贵
(with-open [out-data (io/writer out-file)]
(csv/write-csv out-data (map #(concat % [""]) out-sos))))
不过,不确定csv库在结尾处有空元素时会做什么。希望您能得到空元素。谢谢。我最初没有看到这个。您能给我一个指向示例的指针吗?我看到了:文档中的行尾,但不知道如何使用它。我尝试了您的解决方案,但似乎无法使用我列出的语法特别是
(打开[out data(io/writer out file)](csv/write csv out data out sos))
我看不到:与clojure.data.csv关联的行结束。我确实看到它与clojure csv关联。那有区别吗?谢谢。我最初没有看到这一点。你能给我举个例子吗?我明白了:文档中的行尾,但没有说明如何使用它。我尝试了您的解决方案,但似乎无法使用上面列出的语法,特别是(使用open[out data(io/writer out file)](csv/write csv out data out sos))
我看不到:与clojure.data.csv相关的行尾。我确实看到它与clojure csv关联。这有区别吗?