2014-10-02 56 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)$")