【问题标题】:clojure slurp requires absolute pathclojure slurp 需要绝对路径
【发布时间】:2017-05-26 16:58:36
【问题描述】:

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

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

我只是一次性运行这个脚本,没有创建任何类型的文件夹/项目结构,这将是 clojure 应用程序的典型结构,所以不确定这是否会导致任何路径问题

【问题讨论】:

    标签: clojure


    【解决方案1】:

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

    【讨论】:

    • Hmmm... 一定是 sublimerepl 是从 clojure 所在的任何地方执行的,而不是从当前工作目录执行的。我习惯于构建具有路径感知能力的命令,因此如果您在目录中构建文件,shell 会使用该路径调用解释器。
    • 听起来像是与您使用 sublimerepl 有关的问题。您可以通过运行(System/getProperty "user.dir") 找出 JVM 认为工作目录是什么。
    • yep.... 默认为 sublimes 位置,需要弄清楚如何将其设置为活动目录。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-03-23
    • 2020-08-14
    • 2014-02-09
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多