如何在Julia中子文件夹的文件夹之间循环?

log*_*ick 3 julia

我试图用Julia编写一个给定起始文件夹的程序,该程序将遍历所有子文件夹,以便我可以打开并从子文件夹中的所有文件中获取内容。在Julia中我该怎么做?

理想情况下,如果我不提前知道,代码将允许未指定的文件夹深度。

Ans*_*hvi 8

您可以这样使用walkdir

for (root, dirs, files) in walkdir("mydir")
    operate_on_files(joinpath.(root, files)) # files is a Vector{String}, can be empty
end
Run Code Online (Sandbox Code Playgroud)

https://docs.julialang.org/en/v1/base/file/#Base.Filesystem.walkdir

编辑:这里要做的一件好事是在文件路径数组之间广播,这样您就无需对空数组进行特殊情况处理。

contents = String[]
for (root, dirs, files) in walkdir("mydir")
    # global contents # if in REPL
    push!.(Ref(contents), read.(joinpath.(root, files), String))
end
Run Code Online (Sandbox Code Playgroud)

  • 尼斯安舒尔!我应该比自己动手更了解。我会赞成你的(这是他们的更好答案),但请保留我的想法,因为该概念很有用。 (2认同)