有時候,我們需要從一系列資料夾裡提取一系列檔案,比如pdf檔案。再者,我們可能還需要對這些檔案做一些處理,比如合併。那麼就可以利用r語言來處理。一般來說,perl語言更適用於檔案或文字的處理。不過,因perl語言很久沒用,生疏了。
r語言自帶的一系列函式處理如下:
file.
remove
(...
) # 用於檔案刪除
file.
rename
(from
, to) # 重新命名
file.
(file1, file2) #合併檔案
file.
copy
(from
, to, overwrite = recursive, recursive =
false
, copy.mode =
true
, copy.date =
false
) # 檔案複製
list.
files
() # 羅列資料夾或工作目錄裡的所有檔名
dir(
) # 羅列檔名,同上
dir.
create
() # 建立資料夾
unlink
(x, recursive =
false
, force =
false
) # 刪除資料夾
資料夾new1裡有一系列子資料夾,通過下述**可以對它們重新命名:
myfolderpath <
-"d:/myworks/new1"
setwd
(myfolderpath)
allfoldn <
-dir
(myfolderpath)
foldnewn <
-paste0
('nf',1
:length
(allfoldn)
)file.
rename
(allfoldn,foldnewn)
通過上述**,子資料夾會以『nf1』,『nf2』,…的方式重新命名。
通過下述**可以把子資料夾裡的所有檔案合併到每個子資料夾的第乙個檔案:
myfolderpath <
-"d:/myworks/new1"
setwd
(myfolderpath)
allfoldn <
-dir
(myfolderpath)
for(i in1:
length
(allfoldn)
)}
如果想刪除某些特定檔案,可以使用下述**:
file.
remove
(dir
("."
, pattern=
"(.m3u8)$"
))
如果想刪除所有子資料夾,可以使用下述**:
setwd
(myfolderpath)
for(i in1:
length
(allfoldn)
)unlink
(allfoldn[i]
,recursive =
t, force=
true
)
如果子資料夾數量比較多時,可以使用並行命令來節省時間,將上述合併的for迴圈改為函式ref,然後來執行並行命令:
ref<
-function
(allfoldn)
}
並行命令的**如下:
myfolderpath <
-"d:/myworks/new1"
setwd
(myfolderpath)
allfoldn <
-dir
(myfolderpath)
library
(doparallel)
cl <
-makepsockcluster
(detectcores()
-1)registerdoparallel
(cl)
foreach
(allfoldn=allfoldn)
%dopar%
ref(allfoldn)
stopcluster
(cl)
再次證實,學會一定的程式設計能力,可以達到事半功倍。 git 批量刪除資料夾和檔案
本地刪除檔案後,執行 git status 然後接著 git rm 檔案 此時如果是要刪除大批量檔案,這麼乙個乙個命令下去不得累死人啊 其實可以這樣 不管之前有沒有已經本地物理刪除 執行 git rm r 記得,cd 到你要刪除的目錄下。當然 可以換成指定目錄 這時刪除檔案已經進入本地快取區,接下來...
C 檔案和資料夾
獲取啟動了應用程式的可執行檔案的路徑,不包括可執行檔案的名稱。返回上一級路徑 是你返回的資料夾級數 string parentpath di.fullname 判斷檔案是否存在 if system.io.file.exists parentpath directory.exists path pat...
刪除檔案和資料夾
一 刪除檔案 使用 del 命令,可以檢視幫助資訊 del p f s q a attributes names erase p f s q a attributes names names 指定乙個或數個檔案或目錄列表。萬用字元可被用來 刪除多個檔案。如果指定了乙個目錄,目錄中的所 有檔案都會被刪...