代码之家  ›  专栏  ›  技术社区  ›  Rookatu

r将文件夹识别为文件

  •  0
  • Rookatu  · 技术社区  · 6 年前

    我在Dropbox上有一个文件夹,用于存储R脚本,还有一个子文件夹,用于存档这些脚本的旧版本。无论出于什么原因,我的4个脚本都有一个“.r”扩展名,其中一个有一个“.r”扩展名。两者在加载和运行时都可以正常工作。

    我想得到这个文件夹中的文件列表,我用它来做 list.files() . 如果我只指定文件夹路径,那么我会得到一个包含6个元素的列表:我的5个脚本和归档文件夹。

    如果我指定 pattern = "*.R" 然后我得到4个文件的扩展名。如果我还指定 ignore.case = TRUE 然后返回的列表确实包含了我的第五个脚本,但出于某种疯狂的原因,存档文件夹又出现了!

    为什么文件夹明显被识别为扩展名为“*.r”的文件?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Rookatu    6 年前

    两个 lmo Eric 正确的猜测是,我贪婪的正则表达式与文件夹匹配,因为它的名称包含一个“r”。我忘了逃离 . ,之后问题就解决了。也许更好的方法是在匹配的末尾添加行尾字符“$”(例如 *\\.r$ )