2014-10-02 57 views
1

我正在使用类似下面的命令来获取文件夹中的文件列表。R list.files忽略系统文件

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

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

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

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

按照在我用下面的代码的答案中的一个提供的建议,但它没有似乎工作:(。

我.Rdata和.rhistory也。和..我不希望这些文件/值。

我只想要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" 

回答

1

另一种选择:

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

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

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