如何在 R 中检查文件是否打开或关闭

use*_*009 3 r file

我想问一下在R编程中读取文件之前如何检查文件的状态(是否打开或关闭)?

我努力了myfile = open(filenames); 它不起作用。

MS *_*nds 6

我认为诀窍是使用open = "w"打开进行写入。这似乎对我来说非常有效:

file.opened <- function(path) {
  suppressWarnings(
    "try-error" %in% class(
      try(file(path, 
               open = "w"), 
          silent = TRUE
      )
    )
  )
}
Run Code Online (Sandbox Code Playgroud)

打开 Excel 文件后:

file.opened("C:\\Folder\\tbl1.xlsx")
# TRUE
Run Code Online (Sandbox Code Playgroud)

当我关闭它时:

file.opened("C:\\Folder\\tbl1.xlsx")
# FALSE
Run Code Online (Sandbox Code Playgroud)

  • 当我运行此函数时,它会损坏 Excel 文件。有时,使用一两次后我仍然能够打开该文件,但如果继续使用它,问题就会出现。尝试使用 Excel 打开它给出“文件格式或文件扩展名无效”,并且使用 openxlsx::read.xlsx() 给出:“文件中的错误(con,“r”):无效的“描述”参数另外:警告消息:在 unzip(xlsxFile, exdir = xmlDir) 中:从 zip 文件中提取时出现错误 1” (3认同)