如何用循环批量合并子文件夹内PDF并以子文件夹命名输出?
批量合并子文件夹内PDF的循环实现方案
以下是实现批量处理的R代码,基于你已有的staple_pdf函数:
# 设置工作目录 wd <- setwd(WDPATH) main_folder <- paste0(wd, "/23201018") # 获取主文件夹下的所有子文件夹(排除非文件夹项,比如XLSX文件) sub_folders <- list.files(path = main_folder, full.names = TRUE) sub_folders <- sub_folders[dir.exists(sub_folders)] # 循环处理每个子文件夹 for (folder in sub_folders) { # 构建输出文件路径:子文件夹内生成以文件夹命名的PDF output_path <- paste0(folder, "/", basename(folder), ".pdf") # 调用合并函数 staple_pdf( input_directory = folder, input_files = NULL, output_filepath = output_path, overwrite = FALSE ) # 可选:打印处理进度 cat("已完成合并:", basename(folder), "\n") }
关键说明
- 筛选有效子文件夹:通过
dir.exists过滤掉主文件夹中的文件(如23201018.XLSX),只保留真正的子文件夹,避免无效循环。 - 动态生成输出路径:每次循环根据当前子文件夹的名称和路径,自动生成对应的输出PDF路径,确保每个合并文件与子文件夹一一对应。
- 进度提示:
cat语句可以在控制台实时显示处理完成的文件夹名称,方便跟踪批量处理的进度。
内容的提问来源于stack exchange,提问作者Berta_94
相关产品推荐
相关产品推荐

