【发布时间】:2013-11-18 01:47:07
【问题描述】:
我想问在R编程中阅读之前如何检查文件的状态(是打开还是关闭)?
我试过myfile = open(filenames);它不起作用。
【问题讨论】:
我想问在R编程中阅读之前如何检查文件的状态(是打开还是关闭)?
我试过myfile = open(filenames);它不起作用。
【问题讨论】:
我认为诀窍是使用open = "w" 打开写作。这对我来说似乎很有效:
file.opened <- function(path) {
suppressWarnings(
"try-error" %in% class(
try(file(path,
open = "w"),
silent = TRUE
)
)
)
}
打开 Excel 文件后:
file.opened("C:\\Folder\\tbl1.xlsx")
# TRUE
当我关闭它时:
file.opened("C:\\Folder\\tbl1.xlsx")
# FALSE
【讨论】:
当您使用函数file 时,将返回到文件的连接:
con <- file(description="path/to/file", ...)
您可以使用isOpen 函数检查它是否已打开,该函数将返回logical(TRUE、FALSE 或NA)。
如果您的 R 会话中没有 connection,或者连接已被删除,则连接已关闭:
摘录?file:
‘close’ closes and destroys a connection. This will happen
automatically in due course (with a warning) if there is no longer
an R object referring to the connection.
文件连接可以分别使用open和close打开和关闭。
【讨论】:
file 而不是open :)
isOpen 返回FALSE,无论文档是否打开。
isOpen 不会检查文件是否在任何应用程序中打开,它会检查特定连接是否在 R 中打开,例如在上面的例子中,con 变量。
对于 Excel 文件,我使用了以下方法,它可以在我的计算机上运行:用它的名称重命名 Excel 文件。如果打开 Excel 文件,则返回 FALSE。如果 Excel 文件已关闭,则返回 TRUE。
file.rename(from = "C:/Users/xxx/Desktop/Test file access/file1.xlsx",
to = "C:/Users/xxx/Desktop/Test file access/file1.xlsx")
【讨论】: