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

如何使用R代码按文件夹名及序号规则批量重命名多文件夹内图片

R批量重命名图片实现代码

重要提示:运行代码前务必备份全部原始文件,避免操作失误导致文件丢失

实现逻辑

遍历根目录下所有命名符合E+数字格式的文件夹(即E1至E1000文件夹),过滤文件夹内的图片文件,按顺序生成J_文件夹名_序列序号.原后缀格式的新文件名后执行重命名。

完整可运行代码

# 配置参数
# 替换为你存放E1-E1000所有文件夹的根目录路径
root_dir <- "C:/your/root/path/here"
# 可识别的图片格式后缀,按需增删即可
pic_ext <- c("jpg", "jpeg", "png", "bmp", "tiff", "gif")

# 提取所有符合命名规则的目标文件夹
all_subdirs <- list.dirs(root_dir, recursive = FALSE, full.names = TRUE)
target_dirs <- all_subdirs[grepl("^E\\d+$", basename(all_subdirs))]

# 遍历处理每个文件夹
for (dir in target_dirs) {
  current_folder <- basename(dir)
  # 读取文件夹内所有文件
  all_files <- list.files(dir, full.names = TRUE)
  # 过滤出图片文件(忽略后缀大小写)
  is_pic <- grepl(
    paste0("\\.(", paste(pic_ext, collapse = "|"), ")$"),
    all_files, ignore.case = TRUE
  )
  pic_list <- all_files[is_pic]
  
  # 可选:调整图片排序规则,默认按系统读取顺序排序
  # 按文件修改时间排序(从早到晚):取消下行注释即可
  # pic_list <- pic_list[order(file.mtime(pic_list))]
  # 按原文件名字母数字排序:取消下行注释即可
  # pic_list <- pic_list[order(basename(pic_list))]

  # 执行重命名
  for (idx in seq_along(pic_list)) {
    old_file <- pic_list[idx]
    # 保留原始文件后缀
    old_ext <- tools::file_ext(old_file)
    new_file_name <- paste0("J_", current_folder, "_", idx, ".", old_ext)
    new_file <- file.path(dir, new_file_name)
    file.rename(old_file, new_file)
  }
  message(paste0("文件夹", current_folder, "处理完成,共重命名", length(pic_list), "张图片"))
}

使用说明

  • 将代码中root_dir的取值替换为你本地存放E1-E1000文件夹的实际路径,Windows系统路径注意将反斜杠\替换为正斜杠/
  • 首次运行建议先复制2-3个测试文件夹到单独的测试目录,修改root_dir指向测试目录试跑,确认命名结果符合预期后再处理全量文件
  • 如果需要序号固定长度(比如3位长度,1显示为001),可以将生成新文件名的代码替换为new_file_name <- paste0("J_", current_folder, "_", sprintf("%03d", idx), ".", old_ext)

代码默认不会处理文件夹内的非图片文件,也不会修改子文件夹内的内容,不会跨目录移动文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:48:24