我有类似的数据
tab = ({"123" data} {"456" data} ...
(无论如何,它是一个懒惰的哈希映射序列)。
我想逐行将它写入edn文件,所以我这样做了
(map (fn[x] (spit "test.edn" x :append true)) tab)
问题是我希望在文件中有这个:
{"123" data}
{"456" data}
但似乎这样追加
{"123" data}{"456" data}
有没有办法解决这个问题? 我想我必须添加“换行符”,但我不知道该怎么做,因为输入不是字符串。
谢谢!
答案 0 :(得分:1)
抱歉,我终于找到了它,希望它会帮助一些人,我没有在互联网上找到它(我的意思是没有简单的答案)。
(map (fn[x] (spit "test.edn" (str x "\n") :append true)) tab)
下午好。
答案 1 :(得分:1)
(doseq [x tab]
(spit "test.edn" (prn-str x) :append true))
因此,对于tab
中的每个项目,将其转换为可读字符串后跟换行符,然后将该字符串追加到test.edn
。
出于以下原因,您不应使用map
:
map
是懒惰的,因此除非你强迫它,否则不会打印整个序列map
保留序列的头部,这只会浪费内存