在R目录中列出嵌套的Excel文件

问题描述

我在Windows 10上使用以下目录结构。

C:
├── my-R-working-directory/
    ├── excel01.xlsx
    ├── excel02.xlsx
    ├── nested-folder-A
    |   ├── excel03.xlsx
    └── nested-folder-B
        └── excel04.xlsx

我可以使用以下命令直接在工作目录中列出所有Excel文件:

getwd()
#> "C:/my-R-working-directory"

list.files("path/of/folder",pattern = "\\.xlsx$",full.names = TRUE)
#> [1] "C:/my-R-working-directory/excel01.xlsx
#> [2] "C:/my-R-working-directory/excel02.xlsx

我可以为pattern参数使用什么正则表达式来列出所有嵌套一级的Excel文件?换句话说,我只想查看nested-folder-Anested-folder-B中的Excel文件,它们分别是excel03.xlsxexcel04.xlsx(以及文件夹中任何其他深一层)。

我的想法是使用您在下面看到的内容,但是它返回character(0),我认为这意味着我的正则表达式是错误的:

list.files("path/of/folder",pattern = "\\\\.xlsx$",full.names = TRUE)
#> character(0)

我拿了在工作目录中查找的pattern = "\\.xlsx$",并尝试上一层,即pattern = "\\\\.xlsx$"。尝试失败。正确的方法是什么?

解决方法

如果您查看了recursive中的list.files()参数,则可以查看较低目录中的文件。与pattern = "\\.xlsx$"结合使用将匹配所有递归目录中的Excel文件。

list.files("path/of/folder",pattern = "\\.xlsx$",full.names = TRUE,recursive = TRUE)

如果您要创建特定于级别的递归列表文件,此answer可能会有所帮助。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...