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

使用For Loop批量编辑文件:RStudio文件名重命名求助

批量重命名文件的R实现方案

核心思路

先获取目标文件夹内所有需要处理的文件路径,再通过循环对每个文件执行你已验证的文件名提取、修改逻辑,最后完成重命名。

完整代码

# 替换为你的目标文件夹路径
folder_path <- "/Users/cgill22/Desktop/GTEx_WGCNA_sex_combined_signed/"

# 获取文件夹内所有.xls格式文件(需处理其他格式可修改pattern)
file_paths <- list.files(path = folder_path, pattern = "\\.xls$", full.names = TRUE)

# 批量处理每个文件
for (path in file_paths) {
  # 提取纯文件名(去除路径)
  name <- sub(".*/", "", path)
  # 移除"Pathway_Enrichment_all_results.xls"部分
  name <- sub("Pathway_Enrichment_all_results\\.xls", "", name)
  # 移除下划线后的数字及后续内容
  name <- gsub("_[0-9]+.*$", "", name)
  # 生成目标文件名(保留.xls后缀)
  new_name <- paste0(name, "sex-combined.xls")
  # 拼接完整的新文件路径
  new_path <- file.path(folder_path, new_name)
  # 执行重命名
  file.rename(from = path, to = new_path)
}

关键说明

  • 路径设置:务必把folder_path替换成你实际的桌面文件夹路径,路径末尾的斜杠可以保留,避免拼接出错。
  • 文件筛选:pattern = "\\.xls$"用来只处理xls格式文件,如果是xlsx或其他格式,修改成对应的正则(比如"\\.xlsx$");如果要处理文件夹内所有文件,直接去掉pattern参数即可,但要确保文件夹里只有目标文件。
  • 正则优化:把原代码里的gsub("([0-9]+).*$", "", name)改成gsub("_[0-9]+.*$", "", name),能更精准定位到下划线后的数字部分,避免误删文件名里的其他数字。
  • 安全提示:执行前建议先备份文件夹内的文件,防止误操作导致数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:40:41