需求:用R语言批量为文件添加所在文件夹名称前缀
批量给文件添加父文件夹前缀的R实现方案
嘿,作为R新手碰到这种批量操作确实会有点懵,我来给你写个简单易懂的脚本,一步步帮你完成任务!
核心思路
我们要做的就是:
- 定位到
Tmin主文件夹,找出它下面的所有直接子文件夹 - 逐个处理每个子文件夹,获取里面的目标文件
- 把每个文件的文件名改成「子文件夹名_原文件名」的格式
- 批量执行重命名操作
完整代码(带新手友好注释)
# 1. 设置你的主文件夹路径!!! # Windows系统记得用双反斜杠(比如"C:\\Users\\XXX\\Tmin"),Mac/Linux用正斜杠 main_folder <- "你的Tmin文件夹实际路径" # 2. 获取Tmin下的所有直接子文件夹路径(只拿一级子文件夹,不包含嵌套的深层文件夹) sub_folders <- list.dirs(path = main_folder, recursive = FALSE) # 3. 循环遍历每个子文件夹 for (folder in sub_folders) { # 提取当前子文件夹的名称(比如拿到"MACA_Miroc") folder_name <- basename(folder) # 获取当前文件夹下的所有.tiff文件(只处理tiff,避免误改其他类型文件) # full.names=TRUE是为了拿到文件的完整路径,不然R找不到具体文件位置 files_to_rename <- list.files(path = folder, pattern = "\\.tiff$", full.names = TRUE) # 4. 循环处理当前文件夹里的每个文件 for (file_path in files_to_rename) { # 提取原文件名(比如"name_date.tiff") original_filename <- basename(file_path) # 构造新文件名:子文件夹名 + 下划线 + 原文件名 new_filename <- paste0(folder_name, "_", original_filename) # 构造新文件的完整路径(确保和原文件在同一个文件夹里) new_file_path <- file.path(folder, new_filename) # 执行重命名操作 file.rename(from = file_path, to = new_file_path) # 可选:打印重命名日志,方便你确认操作是否符合预期 print(paste("已完成重命名:", original_filename, "→", new_filename)) } }
新手必看提醒
- 先备份! 批量操作有风险,建议先把
Tmin文件夹完整复制一份做备份,避免操作失误丢失文件 - 先测试! 可以先把
file.rename那一行注释掉(前面加#),只运行打印语句,看看新文件名是不是你想要的格式,确认无误后再开启重命名 - 路径要填对! 一定要把
main_folder改成你电脑上Tmin文件夹的实际路径,Windows用户注意路径里的斜杠是双反斜杠,Mac/Linux是单正斜杠
这样运行之后,所有子文件夹里的tiff文件都会自动加上父文件夹的前缀啦!
内容的提问来源于stack exchange,提问作者LMontef
相关产品推荐
相关产品推荐

