0

我有这样的数据

tab = ({"123" data} {"456" data} ... 

(无论如何,它是一个惰性哈希图序列)。

我想将它逐行写入一个edn文件,所以我这样做了

(map (fn[x] (spit "test.edn" x :append true)) tab)

问题是我想在文件中有这个:

{"123" data}
{"456" data}

但它似乎是这样附加的

{"123" data}{"456" data}

有没有办法解决这个问题?我想我必须添加“换行符”,但我不知道该怎么做,因为输入不是字符串。

谢谢 !

4

2 回答 2

1

抱歉,我终于找到了,希望对某些人有所帮助,因为我没有在互联网上找到它(我的意思是没有简单的答案)。

(map (fn[x] (spit "test.edn" (str x "\n") :append true)) tab)

下午好。

于 2016-02-18T11:46:07.090 回答
1
(doseq [x tab]
  (spit "test.edn" (prn-str x) :append true))

因此,对于 中的每个项目tab,将其转换为可读字符串,后跟换行符,然后将该字符串附加到test.edn.

map出于以下几个原因,您不应为此使用:

  1. map是懒惰的,因此不会打印整个序列,除非你强制它
  2. map保留序列的头部,这只会在这里浪费内存
于 2016-02-18T16:05:09.803 回答