我有一个文件,每行都有一个二维数组.我找不到将文件解析为实际数组的方法,并将它们放入列表中.
该文件看起来像这样,数组在不同的行中,即使它似乎不是:
您只需打开文件进行阅读with-open-file
,然后read
根据需要经常使用该功能,或者像使用数组一样经常使用.每个read
返回一个数组.使用loop
您可以将它们收集到列表中.
基本上是这样的:
(with-open-file (s filename) (let ((*read-eval* nil)) (loop with eof = '#:eof for object = (read s nil eof) until (eq object eof) collect object)))
另请注意,每个阵列是否都在自己的行上并不重要.如果它们在一条线上,它仍然可以工作.表达式之间的换行符只是Lisp 读者的空白.