Julia 在文件夹中搜索文件

Julia 在文件夹中搜索文件,julia,Julia,我正在尝试使用Julia解析很多文本文件,我想在一个文件名数组中循环,而不是键入一个函数调用来分别读取每个文件名。到目前为止,我无法找到一种方法来搜索文件夹中与模式匹配的文件 是否有一个基库函数可以返回给定文件夹中与给定字符串模式匹配的所有文件名 R中的等效函数是list.files(),如果这有助于传达我想要的信息。在Julia中,与list.files()等效的函数是readdir([path]) 据我所知,没有内置的目录搜索,但它只是一行: searchdir(path,key)=过滤器(

我正在尝试使用Julia解析很多文本文件,我想在一个文件名数组中循环,而不是键入一个函数调用来分别读取每个文件名。到目前为止,我无法找到一种方法来搜索文件夹中与模式匹配的文件

是否有一个基库函数可以返回给定文件夹中与给定字符串模式匹配的所有文件名


R中的等效函数是
list.files()
,如果这有助于传达我想要的信息。

在Julia中,与
list.files()
等效的函数是
readdir([path])

据我所知,没有内置的目录搜索,但它只是一行:

searchdir(path,key)=过滤器(x->contains(x,key),readdir(path))


更新:至少从Julia v0.7开始,
contains()
已被弃用于
occursin(子字符串,字符串)
。因此,上述过滤器现在应为:

searchdir(path,key) = filter(x->occursin(key,x), readdir(path))

另一种解决方案是使用该软件包。例如,如果目录中有以下文件列表:

foo1.txt
foo2.txt
foo3.txt
bar1.txt
foo.jl
你想找到所有以“foo”开头的文本文件

using Glob
glob("foo*.txt") #if searching the working directory
#output:
#"foo1.txt"
#"foo2.txt"
#"foo3.txt"
glob("foo*.txt","path/to/dir") #for specifying a different directory
#output:
#"path/to/dir/foo1.txt"
#"path/to/dir/foo2.txt"
#"path/to/dir/foo3.txt"

作为补充:与包含类似,以下函数可能有用:
isfile
isdir
startswith
endswith
。您还可以使用
readdir(expanduser(path))
~
转换为home dir(在linux下)。也可以使用正则表达式:<代码> SexChdir(“~/PoC/ MyPackage /SRC/\”,R“.jL$”)< /Cord> MDE,您可以考虑更新您的答案。@Trock答案中的Glob.jl包比oneliner hack更直接易读。