r - list.files:正则表达式模式在 Windows 上不起作用?
问题描述
我可以通过以下方式访问并获取文件的路径file.choose()
:
"D:\\amca\\reportes_mov\\data_mym\\mym_total_csv\\hhhh-2020-11-09.csv"
我正在使用一个项目,所以我不必输入整个路径,但在reportes_mov
. 为什么我的列表文件在我运行后是空的?
files <- list.files(pattern = 'data_mym\\/mym_total_csv\\/hhhh-2020-[0-9]{2}-[0-9]{2}\\.csv')
其他尝试:仍然是空的。
files <- list.files(pattern = 'data_mym\\mym_total_csv\\hhhh-2020-[0-9]{2}-[0-9]{2}\\.csv')
解决方案
的pattern
参数list.files
只匹配文件名部分而不是路径:
path
:完整路径名的字符向量;默认对应工作目录,getwd()...
pattern
: 一个可选的正则表达式。仅返回与正则表达式匹配的文件名。
如果我理解正确,您还需要参数full.names = TRUE
如果为 TRUE,则将目录路径添加到文件名之前以提供相对文件路径。如果为 FALSE,则返回文件名(而不是路径)。
尝试
files <- list.files(path = 'data_lsd/lsd_total_csv', pattern = 'america-2020-[0-9]{2}-[0-9]{2}\\.csv', full.names=TRUE, ignore.case = TRUE)
它按预期输出子目录中的 CSV:
[1] "data_lsd/lsd_total_csv/america-2020-11-09.csv"
[2] "data_lsd/lsd_total_csv/america-2020-11-10.csv"
推荐阅读
- javascript - 在 NETTE 框架中如何以及在何处包含 CSS 和 JS 文件?
- javascript - 将回调结果保存到变量
- python - 如何使用 reStructuredText 记录 python 模块?
- javascript - 如何在 TLSWrap.onStreamRead 修复 ECONREST
- regex - 如何定位数据列而不是字符位置而不是使用循环在 Perl 和 Bash 中搜索?
- swift - 为什么 UIScreen.main.bounds 会为每个设备返回 (0.0, 0.0, 320.0, 568.0)?
- neo4j - 在多路径查询中强制关系顺序
- swift - MacOS 完成发布请求然后继续
- vb.net - DataGridView - 根据其他单元格计算和更新单元格值
- python - Python websocket 使用基本身份验证自动关闭