Io 文件导入的默认路径

Io 文件导入的默认路径,io,path,julia,Io,Path,Julia,我已经创建了一个包,现在正在包中创建我的测试。对于一个测试,我的输入是一组文件,而我的输出是在测试中创建的另一组文件 我正在将输入文件保存在包的test目录中,并希望将输出文件也保存在那里。因为其他人可能会运行此测试,所以我不想使用自己的路径指定输入/输出文件位置,例如/home/myname/.julia/v4.0/MyPackage/test/MyInputFile.txt 如何指定输入位置在包的测试文件夹中 那么基本上我如何告诉Julia在测试目录下查看包的文件夹,而不必担心指定整个路径,

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

我正在将输入文件保存在包的test目录中,并希望将输出文件也保存在那里。因为其他人可能会运行此测试,所以我不想使用自己的路径指定输入/输出文件位置,例如/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”)
是您需要的。

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

dirname(@__FILE__)

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

joinpath(Pkg.dir(“MyPackage”),“test”)
是您所需要的。一般来说,
dirname(@u FILE_u)
将为您提供.jl文件的绝对路径,即使您没有在处理包。我实际上如何使用它?例如,如果我想查找名为“thisfile.jl”的文件的目录路径?我试过dirname(@thisfile.jl)和dirname(thisfile.jl)以及dirname(@thisfile.jl),但都不起作用。@user3061923按字面意思放
@\uuuuuuu文件。这是一个解析为当前文件名的宏。所以我完全使用了dirname(@_;u file___;u),得到的返回值仅为“”,这对我有什么帮助?我真的不明白这里发生了什么。为什么它会返回“”,而简单地键入它是如何告诉Julia我正在查找文件MyPackage/test/MyInputFile.txt的?@user3061923非常奇怪的是,
dirname(@\uu file\uuuu)
会返回“”。你能单独问一个问题吗?提供有关操作系统以及如何调用脚本的详细信息。