我以csv格式存储数据,并将其放在“ Datasets”文件夹中。我想仅使用它们的名称来读取数据:CSV.read("name_of_data.csv")
,而不必告诉Julia完整的路径,例如:CSV.read("Datasets/name_of_data.csv")
。
我尝试使用push!(LOAD_PATH,"Datasets")
,但没有用。
谢谢。
答案 0 :(得分:2)
您应该将Julia的当前工作目录更改为Datasets
。您可以通过在尝试读取文件之前写入cd("Datasets")
来完成此操作(假设pwd()
返回了Datasets
目录的父目录)。
您还可以编写以下内容:
cd("Datasets") do
CSV.read("name_of_data.csv")
end
仅将目录临时更改为Datasets
即可读取文件。
LOAD_PATH
被Julia用来决定加载代码(不是数据)时将哪些路径视为项目环境或程序包目录。
编辑:
这是一个可能的示例方法:
function expandpath(directories, filenames)
fnset = Set(filenames)
namemapping = Dict{String, String}()
for d in directories
for fn in readdir(d)
if fn in fnset
fullpath = joinpath(d, fn)
if isfile(fullpath)
namemapping[fn] = fullpath
end
end
end
end
collect(values(namemapping))
end
directories
是要搜索的目录列表,而filenames
是文件名列表。这样一来,您将获得在列出的目录中找到的文件名的扩展路径的列表(如果有重复,则保留最后一个)。