如何仅列出 julia 目录的子目录?
How to list only sub-diectories of a directory in julia?
我尝试列出目录 /path/to/parent/folder 中的目录,如下所示:
parent_dir ="/path/to/parent/folder"
dirs = filter(x -> isdir(x), readdir(parent_dir))
for dir in dirs
println(dir)
end
但什么都不打印!
请帮我只列出父目录的子目录!
我猜您当前的工作目录 pwd()
与 parent_dir
不一样?
readdir(parent_dir)
生成条目列表,例如只是名称,而不是完整路径,当您调用 isdir(x)
时,Julia 相对于当前工作目录工作。您可能想要做的是:
parent_dir ="/path/to/parent/folder"
dirs = filter(x -> isdir(joinpath(parent_dir, x)), readdir(parent_dir))
for dir in dirs
println(dir)
end
例如在 x
前面加上您从中读取它的文件夹 joinpath
.
从 Julia 版本 1.4 开始,您可以使用 join
关键字参数 readdir
,它直接为您提供完整路径:
parent_dir ="/path/to/parent/folder"
dirs = filter(isdir, readdir(parent_dir; join=true))
除了 readdir
,您还可以查看 walkdir
,它可以让您做更多事情。它生成一个遍历给定文件夹下的目录树的迭代器。对于您的特定用例,代码如下所示:
parent_dir ="/path/to/parent/folder"
dirs = first(walkdir(parent_dir))[2]
它大约与 filter
/readdir
方法一样快,也许稍微慢一点,但它还有很多其他用途。
我尝试列出目录 /path/to/parent/folder 中的目录,如下所示:
parent_dir ="/path/to/parent/folder"
dirs = filter(x -> isdir(x), readdir(parent_dir))
for dir in dirs
println(dir)
end
但什么都不打印!
请帮我只列出父目录的子目录!
我猜您当前的工作目录 pwd()
与 parent_dir
不一样?
readdir(parent_dir)
生成条目列表,例如只是名称,而不是完整路径,当您调用 isdir(x)
时,Julia 相对于当前工作目录工作。您可能想要做的是:
parent_dir ="/path/to/parent/folder"
dirs = filter(x -> isdir(joinpath(parent_dir, x)), readdir(parent_dir))
for dir in dirs
println(dir)
end
例如在 x
前面加上您从中读取它的文件夹 joinpath
.
从 Julia 版本 1.4 开始,您可以使用 join
关键字参数 readdir
,它直接为您提供完整路径:
parent_dir ="/path/to/parent/folder"
dirs = filter(isdir, readdir(parent_dir; join=true))
除了 readdir
,您还可以查看 walkdir
,它可以让您做更多事情。它生成一个遍历给定文件夹下的目录树的迭代器。对于您的特定用例,代码如下所示:
parent_dir ="/path/to/parent/folder"
dirs = first(walkdir(parent_dir))[2]
它大约与 filter
/readdir
方法一样快,也许稍微慢一点,但它还有很多其他用途。