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

如何在R中按文件名规则复制TIF文件到指定目录并重命名?

批量整理TIF文件到指定目录的R实现

核心思路

遍历ntl下的每个城市子文件夹,提取每个TIF文件名中的年份和月份信息,将文件复制到tst对应城市的年份/月份子目录下,并统一重命名为ntl.tif。

实现代码

# 1. 定义根路径(请替换为你的实际文件夹路径)
ntl_root <- "D:/your_path/ntl"
tst_root <- "D:/your_path/tst"

# 2. 获取所有城市名称
cities <- dir(ntl_root, full.names = FALSE)

# 3. 遍历每个城市
for (city in cities) {
  # 获取当前城市下的所有TIF文件
  tif_files <- dir(file.path(ntl_root, city), pattern = "\\.tif$", full.names = TRUE)
  
  # 遍历每个TIF文件
  for (tif_file in tif_files) {
    # 提取文件名中的年份和月份
    file_basename <- basename(tif_file)
    year <- sub("t(\\d{4})_\\d{2}\\.tif", "\\1", file_basename)
    month <- sub("t\\d{4}_(\\d{2})\\.tif", "\\1", file_basename)
    
    # 构造目标文件路径
    target_dir <- file.path(tst_root, city, year, month)
    target_file <- file.path(target_dir, "ntl.tif")
    
    # 复制并重命名文件(overwrite=TRUE表示覆盖已存在的ntl.tif)
    file.copy(tif_file, target_file, overwrite = TRUE)
    
    # 可选:打印处理进度
    cat("已处理:", tif_file, "->", target_file, "\n")
  }
}

cat("所有文件处理完成!")

注意事项

  • 请确保替换代码中的ntl_root和tst_root为你本地的实际文件夹路径,Windows路径可以用正斜杠/或者双反斜杠\\。
  • 代码默认允许覆盖目标目录中已存在的ntl.tif,如果不需要覆盖,将file.copy中的overwrite参数改为FALSE。
  • 若tst目录结构存在缺失(比如某城市的某年份/月份目录未创建),可以在构造target_dir后添加dir.create(target_dir, recursive = TRUE)来自动创建目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 19:22:43