在R語言默認目錄下有一文件夾test,其下有三個文件,分別是test1.txt, text2.txt, text3.txt, 現在要對這三個文件進行批量的修改。主要使用到了for 循環和sub()字符替換函數。思路是先通過list.files()函數將test文件夾下面的三個文件名讀至變量,然后通過for循環來實現批量修改文件名。
1. 修改文件擴展名
1
2
3
4
5
6
7
|
folder<-setwd('~/test') files<-list.files(folder) for (f in files){ newname<-sub(".txt",'.xls',f) file.rename(f,newname) } dir() |
顯示結果:
[1] "text1.xls" "text2.xls" "text3.xls"
2. 刪除文件擴展名
1
2
3
4
5
6
7
|
folder<-setwd('~/test') files<-list.files(folder) for (f in files){ newname<-sub('.xls','',f) file.rename(f,newname) } dir() |
顯示結果:
[1] "text1" "text2" "text3"
3. 增添文件擴展名
這里我們用到一個正則表達式,用‘$'代替字符的尾部,將字符尾部替換為'.doc'
1
2
3
4
5
6
7
|
folder<-setwd('~/test') files<-list.files(folder) for (f in files){ newname<-sub('$','.doc',f) file.rename(f,newname) } dir() |
輸出結果:
"text1.doc" "text2.doc" "text3.doc"
4. 修改文件名中的字符
1
2
3
4
5
6
7
|
folder<-setwd('~/test') files<-list.files(folder) for (f in files){ newname<-sub('xt','ab',f) #將原文件中的字符xt,替換為字符ab file.rename(f,newname) } dir() |
輸出結果:
[1] "teab1.doc" "teab2.doc" "teab3.doc"
5. 刪除文件名中的數字
把實驗目錄下的文件分別修改為tab.doc,teb.doc, tdb.doc,用“\\d”正則表達式代替文件中的數字。
1
2
3
4
5
6
7
|
folder<-setwd('~/test') files<-list.files(folder) for (f in files){ newname<-sub('\\d','',f) file.rename(f,newname) } dir() |
輸出結果:
[1] "tab.doc" "tdb.doc" "teb.doc"
參考文章:
1.R語言文件目錄操作 https://www.omicsclass.com/article/338
2.R語言字符串替換 https://www.cnblogs.com/emanlee/p/4464018.html
到此這篇關于使用R語言批量修改文件名的文章就介紹到這了,更多相關R語言批量修改文件名內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/henanlion/article/details/105540956