我在脚本中使用readLines(文本url),其中readLines(文本url)被调用了数百次,每个文本url都是唯一的。
大约125次调用readLines(text url)后,出现错误,“所有连接都在使用中”。
当我使用showConnections(all = TRUE)检查打开的连接时,对于URL连接,我看到:
description class ... isopen
"www.site.com" "url" ... "closed" ...
如何从R环境中删除这些关闭的连接,以便可以打开新连接?
另外,我尝试过事先打开url,将url连接传递到readLines中,然后在完成连接后关闭连接,仍然遇到相同的问题。
最佳答案
避免此类问题的最简单方法是在完成连接后显式关闭连接。在R中,最简单的方法是使用on.exit()
,即使您的代码中发生错误,它也可以确保url被关闭。
read_url <- function(url, ...) {
on.exit(close(url))
readLines(url, ...)
}
showConnections()
g <- read_url("http://www.google.com")
showConnections()
关于r - 如何正确关闭R中的连接,以便释放其连接 'slot'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20169172/