【问题标题】:Default path for file import Julia文件导入 Julia 的默认路径
【发布时间】:2016-06-22 23:16:15
【问题描述】:

我已经创建了一个包,现在正在包中创建我的测试。对于一个测试,我的输入是一组文件,我的输出将是在测试中创建的另一组文件。

我将输入文件保存在我的包的测试目录中,并且也希望将输出文件保存在那里。由于其他人可能会运行此测试,因此我不想使用自己的路径指定输入/输出文件位置,例如 /home/myname/.julia/v4.0/MyPackage/test/MyInputFile.txt 如何指定输入位置在包的测试文件夹中?

那么基本上我如何告诉 Julia 在测试目录下查看包的文件夹,而不必担心指定包括用户名等在内的整个路径?

例如目前我不得不说

readtable(/home/myname/.julia/v4.0/MyPackage/test/MyInputFile.txt, separator = '\t', header = false)

但我只想说

readtable(/MyPackage/test/MyInputFile.txt, separator = '\t', header = false)

这样无论包的用户是谁以及他们可以将包存储在哪里,他们仍然可以运行测试?

我知道 LOAD_PATH 给出了 Julia 查找包的路径,但我找不到任何关于它在导入文件时的位置的信息。

【问题讨论】:

  • joinpath(Pkg.dir("MyPackage"), "test") 是您所需要的。

标签: io path julia


【解决方案1】:

joinpath(Pkg.dir("MyPackage"), "test") 是您所需要的。

【讨论】:

  • 一般来说,dirname(@__FILE__) 会为您提供 .jl 文件的绝对路径,即使您不是在处理包。
【解决方案2】:

正如@GnimucK 在评论中提到的,更好的解决方案是

dirname(@__FILE__)

为什么这样更好?可以从其他地方(不是标准包目录)安装和使用包。 Pkg.dir 是“愚蠢的”并且不知道更好。当然,这种情况很少见,而且在大多数情况下都无关紧要。

【讨论】:

  • 我将如何实际使用它?例如,如果我想查找名为“thisfile.jl”的文件的目录路径?我试过 dirname(@__thisfile.jl__) 和 dirname(thisfile.jl) 和 dirname(@thisfile.jl) 但这些都不起作用。
  • @user3061923 按字面意思输入@__FILE__。这是一个解析为当前文件名的宏。
  • 所以我确实做了那个 dirname(@__FILE__) 并且我得到的回报只是“”,这对我有什么帮助?我真的不明白这里发生了什么。为什么它返回“”以及如何简单地输入告诉 Julia 我正在寻找文件 MyPackage/test/MyInputFile.txt ?
  • @user3061923 dirname(@__FILE__) 正在返回“”,这很奇怪。你能在一个单独的问题中问这个吗?提供有关您的操作系统以及您如何调用脚本的详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 2014-01-11
  • 2018-08-15
  • 1970-01-01
  • 2021-01-19
  • 1970-01-01
相关资源
最近更新 更多