我在序列序列中有数据行,每个序列都不同,但遵循以下一般模式:
("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")
数据就像这样
44999,186300,194300,0,380600,325,57,0
这正是我想要的方式(不带引号),除了,我想在每个序列的末尾加上一个不带引号的','。
我已经尝试(concat one-row (list \,))
并试图在(list
函数的每个序列的末尾添加一个','但是我不能在每个序列的末尾得到一个不带引号的',' 。我怎么能这样做?
作为一种解决方法,我可以通过sed运行这样的文件来添加尾随逗号,但我想在Clojure中完成所有操作。
答案 0 :(得分:2)
我认为您不想“添加逗号”但添加一个空字段(然后用逗号分隔)。因此,您只需在行序列中添加一个空字符串。
答案 1 :(得分:1)
也许将一个空字符串连接到out-sos中的每个序列。 Concat是懒惰的,所以不应该很贵。
(with-open [out-data (io/writer out-file)]
(csv/write-csv out-data (map #(concat % [""]) out-sos))))
不知道csv库在最后会用空做什么。希望你能得到你的空元素。
答案 2 :(得分:0)
您是否尝试过:行尾设置为“,\ n”
这是文档所说的:
:结束线
包含用于编写CSV文件的行尾字符的字符串。
默认值:\ n
这是我尝试过的:
(csv/write-csv data :end-of-line ",\n")