如何以独立于操作系统的方式从 R 打开本地 html 文件?
出于演示目的,假设文件被调用test.html
并且位于工作目录中。
最初的想法
system('gnome-open test.html')
- 这适用于 Ubuntu
browseURL(paste('file://', getwd(),'test.html', sep='/'))
- 这适用于 Ubuntu,但感觉有点像 hack,我不确定它是否适用于 Windows。
如何以独立于操作系统的方式从 R 打开本地 html 文件?
出于演示目的,假设文件被调用test.html
并且位于工作目录中。
system('gnome-open test.html')
browseURL(paste('file://', getwd(),'test.html', sep='/'))
您可能会发现我的open.file.in.OS
功能很有用,来源可以在这里找到。
关于此函数作用的简短摘要:
shell.exec
在 Windows 上open
在system
Mac 上xdg-open
在system
其他类 Unix 操作系统上shQuote
对私有文件的使用更新:现在查看包openFileInOS
中的内容。pander
library(pander)
openFileInOS("d:/del/dt/a.html")
参考:此函数是 David Hajageconvert
函数的分叉版本,可在此处找到。
我只是想将@daroczig 给出的答案从评论中提取出来并作为答案。如果@darcozig 想将此作为单独的答案发布,我将删除此副本。
openHTML <- function(x) browseURL(paste0('file://', file.path(getwd(), x)))
使用该file.path
函数构造文件路径。
file.path(..., fsep = .Platform$file.sep)
...: character vectors.
fsep: the path separator to use.
默认情况下,它将使用当前的操作系统路径分隔符。
例如
> file.path ("", "home", "phoxis", "paragraph")
[1] "/home/phoxis/paragraph"
这会生成我的文件“/home/phoxis/paragraph”
注意开头的空白字符串“”。在我的情况下,这会强制添加一个额外的“/”来生成绝对路径。调整以根据您的需要生成绝对或相对路径并查看?file.path
我认为这将满足您的需求