r - 如何正确关闭R中的连接,以便释放其连接 'slot'?

标签 r connection base

我在脚本中使用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/

相关文章:

r - R中余弦相似矩阵的前N个值

r - 如何在 Shiny 仪表板的主面板中添加更多空白?

postgresql "keepalives"参数

mysql - javafx 连接到 mysql

image - Docker:standard_init_linux.go:211:exec用户进程导致 "no such file or directory"

r - 测试模块化 R Shiny (golem) 仪表板

regex - 用。。。来代替 。在R中

数据库连接错误 DNN 7

r - R中循环的条形图

inheritance - “base”值只能用于直接调用覆盖成员的基本实现