如何批量将工作目录子文件夹内的文件重命名为序列名称
解决方案
- 你的代码主要存在三个问题:路径拼接方式不安全、正则匹配语法错误、序号生成逻辑错误,以下是修正后的可运行方案:
# 目标子文件夹路径 original_path <- "animals/photos" # 获取该文件夹下所有PNG文件的完整路径 png_files <- dir(path = original_path, pattern = "\\.png$", full.names = TRUE) # 生成按序列命名的新文件名(自动适配文件总数) new_names <- file.path(original_path, paste0("Animal", seq_along(png_files), ".png")) # 执行批量重命名 file.rename(from = png_files, to = new_names)
关键细节说明:
- 用
file.path()拼接路径:自动适配Windows/macOS/Linux的路径分隔符,避免手动拼接出现的斜杠错误 - 正则匹配修正:
\\.png$用于精准匹配以.png结尾的文件,原代码的*.png不符合正则语法 - 序号生成:
seq_along(png_files)根据文件列表长度生成从1开始的连续序号,完美匹配5750个文件的命名需求
如果担心误操作,可以先运行以下代码预览新旧文件名的对应关系:
# 预览重命名映射表 data.frame(原文件名 = basename(png_files), 新文件名 = basename(new_names))
内容的提问来源于stack exchange,提问作者zappbran
相关产品推荐
相关产品推荐

