我正在尝试创建一个循环来合并子文件夹中的所有 pdf,并使用子文件夹名称为每个子文件夹创建一个唯一的 pdf。
举个例子: 我有“23201018”,其中有子文件夹和其他文档,这些都是不相关的
每个子文件夹内有几个我想合并并给出的pdf,合并后的pdf,子文件夹的名称。
我成功地一次运行一个子文件夹
wd<-setwd(WDPATH)
list.files(paste0(wd,"/23201018"))# Folder with subfolders inside
# "23201018.XLSX" "T34709" "T26045" "T85625"
list.files(paste0(wd,"/23201018/T34709")) # I tried for one subfolder at a time
# CREATES A JOIN PDF WITH ALL THE DOCUMENTS IN THE FOLDER
staple_pdf(
input_directory = paste0(wd,"/23201018/T34709"),
input_files = NULL,
output_filepath = paste0(wd,"/23201018/T34709/",basename(paste0(wd,"/23201018/T34709")),".pdf"),
overwrite = FALSE
)
我怎样才能在循环中做到这一点?
这是一个示例,假设您当前的工作目录 包含一个名为“23201018”的文件夹。该文件夹内有子文件夹 “one”和“two”包含 pdf 文件。还有另一个文件夹“no_pdf”, 没有 pdf 文件。
mapply()
将其全部输入到 staplr::staple_pdf()
函数中。library(staplr)
list.dirs("23201018/")
#> [1] "23201018/" "23201018//no_pdf" "23201018//one" "23201018//two"
folder_names <-
list.files("23201018/", recursive = TRUE, pattern = "\\.pdf",
full.names = TRUE) |>
dirname() |>
unique()
pdf_names <-
paste0(folder_names, ".pdf")
pdf_paths <-
file.path("23201018", pdf_names)
mapply(\(x, y) staple_pdf(input_directory = x,
output_filepath = y),
folder_names,
pdf_names)
#> 23201018//one 23201018//two
#> TRUE TRUE