我想建立一个文件的路径,给定一个文件名和一个存在该文件的文件夹。该文件夹可能包含尾部斜杠,也可能不包括。在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"
我正在寻找这个常见问题的内置函数答案。
答案 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)
}