You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何筛选指定job编号目录下符合命名规则的.tif文件

解决方案

你可以使用grepl()函数做正则匹配过滤现有文件列表,也可以直接遍历指定job目录提升搜索效率,两种实现方式如下:

方式1:过滤已获取的文件列表

这种方法适配你现有的代码逻辑,只需要新增两步过滤操作即可:

# 你的原有代码
Year <- 2021
Path_source <- "C:/Files/"
file.ls <- list.files(path=Path_source, pattern=paste0("Text_",Year,".*\\.tif"),all.files = TRUE,  full.names = TRUE, recursive = TRUE)

# 新增过滤逻辑
jobs <- c(1,14,45,67,129,834)
# 构造job目录匹配规则,末尾加/避免短编号误匹配(比如job1不会匹配到job14)
job_match_pattern <- paste0("/job(", paste(jobs, collapse = "|"), ")/")
# 过滤得到目标文件
file.ls_filtered <- file.ls[grepl(job_match_pattern, file.ls)]

方式2:直接遍历指定job目录(效率更高)

如果你的目标job数量远小于总job数,直接只搜索目标job目录可以避免遍历全部1000个job文件夹,速度更快:

Year <- 2021
Path_source <- "C:/Files/"
jobs <- c(1,14,45,67,129,834)

# 构造所有目标job的完整路径
target_job_paths <- file.path(Path_source, paste0("job", jobs))
# 遍历每个目标job目录搜索符合规则的tif文件
file.ls_filtered <- unlist(lapply(target_job_paths, function(job_path) {
  list.files(path = job_path, pattern = paste0("Text_",Year,".*\\.tif"), all.files = TRUE, full.names = TRUE, recursive = TRUE)
}))

两种方式最终得到的file.ls_filtered就是你需要的结果。

内容的提问来源于stack exchange,提问作者MIH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:18:03