list.files - 排除文件夹

时间:2014-08-22 16:04:55

标签: r

我想使用R的list.files函数来查找文件夹及其子文件夹中的所有文本文件。但是,我想排除一个子文件夹中的所有文件,让我们说它包含未完成的工作,这些工作还没有为我使用其他文件的内容做好准备。结构是这样的:

- folder
 |- subfolder_1_good_stuff
 |- subfolder_2_good_stuff
 |- subfolder_3_good_stuff
 |- subfolder_4_unfinished_stuff

所以"文件夹"将是我的工作目录。

我现在要用:

list.files(path=".", pattern=".txt", recursive=TRUE)

但我应该在"路径"表达式,以排除未完成的文件夹。此文件夹名称不会出现在任何文件名中,如果这会产生一些影响。

2 个答案:

答案 0 :(得分:9)

使用正则表达式 - grepl排除:

myfiles <- list.files(path = ".", pattern = ".txt", recursive = TRUE)
myfilesfinished <- myfiles[ !grepl("unfinished_stuff", myfiles) ]

答案 1 :(得分:0)

以@ zx8754的答案为基础,仅使用tidyverse的{​​{1}}方法:

%>%