【发布时间】:2020-06-03 18:38:24
【问题描述】:
我的脚本中有一行代码检查文件是否存在(实际上,很多文件,这一行会循环用于一堆不同的文件):
file.exists(Sys.glob(file.path(getwd(), "files", "*name*")))
这将查找目录 /files/ 中包含“名称”的任何文件,例如“文件名.csv”。但是,我的一些文件被命名为“fileName.csv”或“thisfileNAME.csv”。他们没有得到认可。如何使 file.exists 以不区分大小写的方式处理此检查?
在我的其他代码中,我通常使用 tolower 函数将任何导入的名称或列表立即变为小写。但我没有看到任何将其包含在 file.exists 函数中的选项。
【问题讨论】:
-
基于
file.exists文档,看起来这是基于底层操作系统特定的功能:“不区分大小写的文件系统不区分大小写的文件系统是 Windows 和 macOS 上的规范,但可以可以在所有操作系统上找到(例如,FAT 格式的 USB 驱动器可能不区分大小写)。这些函数很可能匹配现有文件,无论此类文件系统上的大小写如何:但是这是一个操作系统函数,文件名可能可能映射为大写或小写。” -
您可以遍历
list.files的返回值(使用tolower 时)并检查文件是否存在...
标签: r case-insensitive file-exists