防止R中的文件路径中出现重复斜杠

时间:2017-08-10 16:57:06

标签: r filepath

我想建立一个文件的路径,给定一个文件名和一个存在该文件的文件夹。该文件夹可能包含尾部斜杠,也可能不包括。在python中,os.path.join为您解决了这个问题。这个问题有基本的R解决方案吗?如果没有,R建议的方法是什么建立没有重复斜杠的文件路径?

这很好用:

> file.path("/path/to/folder", "file.txt")
[1] "/path/to/folder/file.txt"

但是如果用户提供了一个带有斜杠的文件夹,那么file.path会执行仍然功能但令人讨厌的双斜杠:

> file.path("/path/to/folder/", "file.txt")
[1] "/path/to/folder//file.txt"

我正在寻找这个常见问题的内置函数答案。

2 个答案:

答案 0 :(得分:1)

如果//过于烦人,可以使用/gsub替换为file.path2 = function(..., fsep = .Platform$file.sep){ gsub("//", "/", file.path(..., fsep = fsep)) } file.path2("/path/to/folder", "file.txt") #[1] "/path/to/folder/file.txt" file.path2("/path/to/folder/", "file.txt") #[1] "/path/to/folder/file.txt" 。您可以将其放在自定义功能中以方便

emails

答案 1 :(得分:1)

可能是操作系统独立的,而不是显式编码/

joinpath = function(...) {
    sep = .Platform$file.sep
    result = gsub(paste0(sep,"{2,}"), sep, file.path(...), fixed=FALSE, perl=TRUE)
    result = gsub(paste0(sep,"$"), '', result, fixed=FALSE, perl=TRUE)
    return(result)
}