首页 文章

从多个文件夹中读取* .csv作为列表

提问于
浏览
0

我有多个文件夹中的数千个* csv文件 ../t1/*.csv ,_ ../t2/*.csv../t3/*.csv ...等 .

我可以从多个文件夹上传文件,如下所示:

filenames <- list.files(c("C:/Example/t1","C:/Example/t2"), pattern="*.csv", full.names=TRUE)
list.df <- lapply(filenames, read.csv)

但是我必须输入所有目录 C:/Example/t1C:/Example/t2 等 . 如何读取所有数据(作为data.frames列表)与一个主目录,如: C:/Example/*

1 回答

  • 4

    list.filesrecursive=TRUE 一起使用将搜索第一个参数下的所有文件夹以匹配文件:

    > list.files("./",recursive=TRUE)
    [1] "a/a1.csv"    "a/a2.csv"    "a/notme.txt" "b/b1.csv"    "d/e/e1.csv"
    

    如果我只想要CSV,那就是我当前目录下的所有文件:

    > list.files("./",recursive=TRUE,pattern="*.csv")
    [1] "a/a1.csv"   "a/a2.csv"   "b/b1.csv"   "d/e/e1.csv"
    

    请注意它在二级 d/e/ 文件夹中的外观?

    如果您只想转到一个特定的深度,请尝试 Sys.glob - 这些模式匹配文件夹和文件,这些示例适用于当前目录:

    只有第一级:

    > Sys.glob("*/*.csv")
    [1] "a/a1.csv" "a/a2.csv" "b/b1.csv"
    

    只有第二级:

    > Sys.glob("*/*/*.csv")
    [1] "d/e/e1.csv"
    

相关问题