作者:黃天元,復旦大學博士在讀,熱愛數據科學與R,熱衷推廣R在工業界與學術界的應用。郵箱:[email protected].歡迎合作交流

任務需求:我現在有一個文件夾,文件夾有很多子文件夾。每個子文件夾裡面都有一個pdf文件,我需要把這些pdf全部提取出來放在一個文件夾裡面。

臨時文件夾展示

為了完成這個任務,我用了R基本包的批處理函數。

首先,把這些文件的所在路徑進行複製,然後運行下面的代碼:

#請先把下面的步驟寫好,然後複製之後直接運行。
#不要複製了路徑又複製下面的代碼,最後複製到剪貼板的一定是文件的路徑。

FSlash<- function(path = "clipboard") {
y <- if (path == "clipboard") {
readClipboard()
} else {
cat("Please enter the path:

")
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))
}

成功完成批處理!


推薦閱讀:
相關文章