9

如何以独立于操作系统的方式从 R 打开本地 html 文件?

出于演示目的,假设文件被调用test.html并且位于工作目录中。

最初的想法

  • system('gnome-open test.html')
    • 这适用于 Ubuntu
  • browseURL(paste('file://', getwd(),'test.html', sep='/'))
    • 这适用于 Ubuntu,但感觉有点像 hack,我不确定它是否适用于 Windows。
4

3 回答 3

7

您可能会发现我的open.file.in.OS功能很有用,来源可以在这里找到。

关于此函数作用的简短摘要:

  1. 检查平台
  2. 基于平台,调用:
    • shell.exec在 Windows 上
    • opensystemMac 上
    • xdg-opensystem其他类 Unix 操作系统上
  3. shQuote对私有文件的使用

更新:现在查看包openFileInOS中的内容。pander

library(pander)
openFileInOS("d:/del/dt/a.html")

参考:此函数是 David Hajageconvert函数的分叉版本,可在此处找到。

于 2012-06-10T13:30:07.487 回答
4

我只是想将@daroczig 给出的答案从评论中提取出来并作为答案。如果@darcozig 想将此作为单独的答案发布,我将删除此副本。

openHTML <- function(x) browseURL(paste0('file://', file.path(getwd(), x)))
于 2012-06-18T03:31:10.747 回答
0

使用该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

我认为这将满足您的需求

于 2012-06-10T13:30:56.617 回答