我想將「.txt」文件擴展名添加到沒有當前擴展名的多個文件。我可以創建使用下面的代碼包含文件路徑的載體,但我不知道如何添加名爲「.txt」文件擴展名:將R中的文件擴展名添加到多個文件
startingDir <-"/myDirectory"
filez<-list.files(startingDir)
head(filez)
[1] "/myDirectory/File1"
[2] "/myDirectory/File2"
[3] "/myDirectory/File3"
我想將「.txt」文件擴展名添加到沒有當前擴展名的多個文件。我可以創建使用下面的代碼包含文件路徑的載體,但我不知道如何添加名爲「.txt」文件擴展名:將R中的文件擴展名添加到多個文件
startingDir <-"/myDirectory"
filez<-list.files(startingDir)
head(filez)
[1] "/myDirectory/File1"
[2] "/myDirectory/File2"
[3] "/myDirectory/File3"
嘗試paste(filez ,".txt", sep="")
你應該追加」 .TXT 「列表中的
或者只是'paste0(filez,「.txt」)' – 2014-09-26 23:34:53
這些命令更改列表中的文件名,但不是實際的文件名(我可以在Windows文件夾中查看文件名)。 – omwrichmond 2014-10-01 20:50:29
所有元素也可以使用sprintf
x <- c("/myDirectory/File1", "/myDirectory/File2", "/myDirectory/File3")
sprintf("%s.txt", x)
# [1] "/myDirectory/File1.txt" "/myDirectory/File2.txt" "/myDirectory/File3.txt"
當我查看Windows文件夾中的文件時,'sprintf'似乎沒有更改文件名或擴展名。 – omwrichmond 2014-10-01 20:51:45
如果你已經知道的文件沒有擴展,只需要添加它們,sub
將被罰款。
f <- c('/myDirectory/File1', '/myDirectory/File2', '/myDirectory/File3')
f <- sub('$', '.txt', f)
# [1] "/myDirectory/File1.txt" "/myDirectory/File2.txt" "/myDirectory/File3.txt"
但是,如果您需要執行健全性檢查,我會提出類似以下的建議。這將檢查哪些文件實際上具有擴展名,並且如果它們不然後.txt
將被附加到那些特定文件。
f <- c('/myDirectory/File1', '/myDirectory/File2', '/myDirectory/File3.csv')
f <- ifelse(!grepl('\\.[^.]+$', f), paste0(f, '.txt'), f)
# [1] "/myDirectory/File1.txt" "/myDirectory/File2.txt" "/myDirectory/File3.csv"
當我運行: 'f < - c('/ myDirectory/file1','/ myDirectory/file2','/ myDirectory/file3') f < - sub('$','.txt',f) ' 我得到:當 '>˚F [1] 「/myDirectory/file1.txt」 [2] 「/myDirectory/file2.txt」 [3] 「/myDirectory/file3.txt」'然而,我查看Windows文件夾中的文件,名稱和擴展名未更改。 – omwrichmond 2014-10-01 21:37:54
'file.rename(filez,<取其答案下面>)' – baptiste 2014-09-26 23:43:28
當我運行: 'startingDir < - 「/ mydirectory中」 filez <-list.files(startingDir) newNames < - paste0( filez, 「TXT」) file.rename(filez,newNames)' 我得到這樣的: 'file.rename(filez,newNames) [1]假假假FALSE' 文件名/擴展名不似乎在我查看Windows文件夾中的文件時發生了變化。 – omwrichmond 2014-10-01 21:13:13