在 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
我想看看一些文件是否已经存在,但是我先验地只知道文件名的一部分,即路径和文件类型(全名取决于文件中的一些数据)。
我想我可以做类似的事情
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