在 Julia 中根据 patterns/regex/substring 查找已经存在的文件

Looking for files that already exist based off patterns/regex/substring in Julia

我想看看一些文件是否已经存在,但是我先验地只知道文件名的一部分,即路径和文件类型(全名取决于文件中的一些数据)。

我想我可以做类似的事情

prop_val = Regex(joinpath(base_name,"*.csv"))
isfile(prop_val)

但是这个returns错误

ERROR: MethodError: no method matching joinpath(::Regex)
Closest candidates are:
  joinpath(::AbstractString) at path.jl:251
  joinpath(::AbstractString, ::AbstractString...) at path.jl:296

如果类型 regex 的对象不是 AbstractString.

的子类型,我想这是有道理的

是否有更好的方法来做到这一点,而不是,例如

for file in readdir(base_name)
    if occursin(".csv",file)
        # do something
    end
end

只是您问题中后一个代码的较短版本:

filter(endswith(".csv"), readdir(base_name))

例如,如果您的目标只是检查这样的文件是否存在,

if filter(endswith(".csv"), readdir(base_name)) |> length > 0
  # do stuff
end