vlambda博客
学习文章列表

R语言文件批处理:批量复制粘贴文件


任务需求:我现在有一个文件夹,文件夹有很多子文件夹。每个子文件夹里面都有一个pdf文件,我需要把这些pdf全部提取出来放在一个文件夹里面。

临时文件夹展示

为了完成这个任务,我用了R基本包的批处理函数。

首先,把这些文件的所在路径进行复制,然后运行下面的代码:

#请先把下面的步骤写好,然后复制之后直接运行。
#不要复制了路径又复制下面的代码,最后复制到剪贴板的一定是文件的路径。

FSlash<- function(path = "clipboard") {
y <- if (path == "clipboard") {
readClipboard()
} else {
cat("Please enter the path:\n\n")
readline()
}
x <- chartr("\\", "/", y)
writeClipboard(x)
return(x)
}

FSlash() -> NEED

这样,我刚才复制的路径就到了NEED变量里面。每次都被windows的反斜杠问题麻烦到,终于在listendata.com/2015/06/中找到了解决方案。

然后我想要把这些pdf文件都放到G盘下的temp_pdf文件夹中,我先创建,然后利用循环批量转移。

#读取文件夹名称
dir(NEED) -> folder_names

#创建文件夹
dir.create("G:/temp_pdf")

#利用file.copy函数批量复制粘贴到指定文件夹中
for(i in folder_names){
dir(paste0(NEED,"/",i)) -> folder_files
if(length(folder_files) == 1) file.copy(from = paste0(NEED,"/",i,"/",folder_files),
to = paste0("G:/temp_pdf/",folder_files))
}

成功完成批处理!