2017-05-26 65 views
1

cloobure的总noob - 当我尝试读取与.clj文件位于同一文件夹中的文件时,使用slurp不起作用,除非我放入完整的绝对路径。clojure slurp需要绝对路径

E.G.如果我有stuff/file.clj和stuff/words.txt,(slurp“words.txt”)找不到该文件。如果我把整个路径,它的作品。根据阅读其他人的代码和文档,情况不应该如此。

我只是运行此脚本一次性的,而无需创建任何类型的文件夹/谟结构,这将是一个典型的Clojure的应用程序,所以不知道这会导致任何路径问题

回答

3

slurp采用相对路径当前工作目录,而不是它所在的clojure文件。在Clojure项目中,这通常是项目根目录(即project.clj所在的地方)。但既然你说你只是在没有项目的情况下运行独立的Clojure文件,它应该是你的shell的工作目录。

+0

嗯...必须是sublimerepl从clojure居住的地方执行,而不是当前的工作目录。我用来构建路径感知的命令,以便如果在目录中创建文件,shell会用该路径调用解释器。 – Solaxun

+0

听起来像是与使用sublimerepl有关的问题。通过运行'(System/getProperty“user.dir”)''你可以找出JVM认为工作目录是什么。 – amalloy

+0

是... ....默认为崇高的位置,需要弄清楚如何将其设置为活动目录。谢谢。 – Solaxun