R list.files忽略系统文件

时间:2014-10-02 16:39:42

标签: regex r file

我正在使用如下命令获取文件夹中的文件列表。

我的模式参数无法正常工作。我想拉出一个只有jpg或csv文件的列表。我该如何设置模式参数?

此外,该文件夹包含由系统创建的.RData和.Rhistory文件。我没有把它们。在这种情况下,当我编译文件夹中的文件列表时,是否有更简单的方法来忽略系统文件?

filenames=list.files(path = "//c:/ch7data", pattern = "*.jpg|*.csv")

------------------------- UPDATE1

根据我在下面的代码中使用的一个答案提供的建议,但它似乎没有用:(。

我得到了.Rdata和.rhistory以及。和..我不想要这些文件/值。

我只想在变量filenames

中使用jpg,csv和xlsx文件
filenames=list.files(path = "//C:/ch7data", all.files = TRUE)
> filenames
 [1] "."                           ".."                          ".RData"                      ".Rhistory"                  
 [5] "CH7Data_20130401T130110.csv" "CH7Data_20130401T130110.jpg" "CH7Data_20130401T130610.csv" "CH7Data_20130401T130610.jpg"
 [9] "CH7Data_20130401T131610.csv" "CH7Data_20130401T131610.jpg" "CH7Data_20130401T135010.csv" "CH7Data_20130401T135010.jpg"
[13] "ffa.xlsx"                    "Thumbs.db"         

----------------------- UPDATE2

我使用了如下命令,它避免了。 ,..,。Rdata和.rhistory :) 有什么方法可以避免使用thumbs.db?

> filenames=list.files(path = "//C:/ch7data", all.files = FALSE, no..=TRUE)

> filenames
 [1] "CH7Data_20130401T130110.csv" "CH7Data_20130401T130110.jpg" "CH7Data_20130401T130610.csv" "CH7Data_20130401T130610.jpg"
 [5] "CH7Data_20130401T131610.csv" "CH7Data_20130401T131610.jpg" "CH7Data_20130401T135010.csv" "CH7Data_20130401T135010.jpg"
 [9] "ffa.xlsx"                    "Thumbs.db"

2 个答案:

答案 0 :(得分:1)

另一种选择:

 Sys.glob(file.path("c:","ch7data",c("*.jpg","*.csv")))
  1. 最好使用globs而不是正则表达式
  2. 使用file.path以独立于操作系统的方式创建路径。

答案 1 :(得分:1)

要仅获取以 .jpg .csv 结尾的文件,您可以使用以下模式:

list.files(path = "//c:/ch7data", pattern = "^(.*)+(\\.jpg|\\.csv)$")