gzfile中的错误(文件,“wb”):无法打开连接或压缩文件

问题描述 投票:14回答:14

我正在尝试运行两件事:首先,我用4x5创建一个PDF,以dev.off()结束,然后尝试创建一个新图。然而,在开始第二个情节后,我得到:

Error in gzfile(file, "wb") : cannot open the connection
In addition: Warning message:
In gzfile(file, "wb") :
  cannot open compressed file '/var/folders/n9/pw_dz8d13j3gb2xgqb6rfnz00000gn/T/RtmpTfm1Ur/rs-graphics-822a1c83-b3fd-46c3-8028-4e0778f91d0c/4db4b438-ac35-403b-b791-e781baba152c.snapshot', probable reason 'No such file or directory'
Graphics error: Error in gzfile(file, "wb") : cannot open the connection

这个错误是什么?工作目录是我有读/写访问权限的,我的硬盘驱动器未满。

另外,我正在使用RStudio。

r statistics gzip gz
14个回答
6
投票

这让我很生气,所以希望能给别人带来一些辛劳。问题是分类器在OS X上加载得很好,但在Linux部署系统上,它们会因问题中列出的错误而失败。问题是磁盘上的文件有扩展名abc.RData,但代码为modelAbc <- readRDS(file="abc.Rdata")。在D.RData扩展中,大小写.Rdata的差异在Linux上会失败。这不是很明显,但检查你的扩展案例。


0
投票

在我的例子中,Windows Defender阻止了Rstudio在硬盘上写入任何文件。要么你需要关闭Controlled Folder Access或在排除列表中添加Rstudio.enter image description here


0
投票

使用RStudio和R Markdown时我也遇到了这个问题。我收到此错误消息,并有一个令人讨厌的致命错误,关闭RStudio。我的问题是我正在使用网络驱动器并且名称太长,如上面的@AHedge或我的网络防火墙给我带来了麻烦。目前,我已将我的工作文件移动到我的桌面上,事情似乎工作正常。不确定这对我的文件管理意味着什么。


0
投票

我有这个错误,因为用于保存文件的文件名中的字符无效,在我的情况下是“/”(有很多这样的字符不能在文件名中使用)。我删除了角色,它就解决了。


0
投票

只想在M Beausoleil提到的内容中添加更多清晰度(根据我的经验)。

当您使用共享工作目录并尝试重写已存在于其他用户编写的工作目录中的RDS文件时,您会收到此错误。

有些人已经引用删除现有RDS文件或更改工作目录的方法。这不是魔术。它只是起作用,因为你正在编写一个新的RDS文件,而不是试图重写旧的。


0
投票

在我的情况下,我收到错误“gzfile中的错误(文件,”wb“):在尝试退出Anaconda提示符中的R并保存工作区图像时无法打开连接。我使用的是Windows 10和R-3.5.2。要修复它,我必须转到Program Files文件夹,右键单击R文件夹,然后选择Properties。选择“安全”选项卡,然后在“组或用户名”框中选择“用户”,然后单击“编辑”。在“用户权限”中,我选中了“完全控制”和“修改”并保存了更改。然后我就能保存工作区图像。


4
投票

也许你应该看看here。最后它说

注意:失败的最常见原因是当前目录中缺少写入权限。对于save.image和在会话结束时保存,这将通过消息显示

Error in gzfile(file, "wb") : unable to open connection
In addition: Warning message:
In gzfile(file, "wb") :
  cannot open compressed file '.RDataTmp',
  probable reason 'Permission denied'

如此迅速,如果您尝试getwd(),请查看您的工作目录设置在哪里。如果您尝试将文档保存在不在当前工作目录中的位置,则会引发此错误。

在你的错误信息的最后,它说probable reason 'No such file or directory' Graphics error: Error in gzfile(file, "wb") : cannot open the connection 我的诊断只是它试图将你的项目保存在错误的地方,并且RStudio无法找到正确的地方。


3
投票

这有点晚了但是对于那些来这里寻求帮助的人来说,当我试图从RStudio写一个文件并且我的目标文件路径很长时,我收到了这个错误。我意识到这可能是一个问题,因为当我将文件写入另一个名称较短的位置并尝试将其复制到我原来的目的地时,Windows给了我一个错误,说“文件路径太长”。您可能需要将原始文件保存到具有较短绝对路径的其他位置。


2
投票

您可能没有权限将文件保存在目录中。在RStudio上,通过getwd()获取您的工作目录。然后,转到linux中的目录并通过ls -l观察其所有者。现在,您可以通过chown -R username directoryname更改目录的所有者。但你必须是根。


1
投票

通过指定完整文件路径解决问题:

saveRDS(df,'C:\\users\\matt\\desktop\\code\\df.Rdata')

1
投票

我最近遇到了这个问题。尝试关闭防病毒软件并构建软件包,这可能有所帮助。它对我有用。通常,防病毒会阻止权限,您可以通过在构建程序包之前的某个时间禁用它来避免它。


0
投票

我有同样的问题。对我来说,这是由于安装了R studio的驱动器上没有足够的磁盘空间造成的。放空间工作。


0
投票

出错的原因是您的用户名是中文。请在用户目录中创建包含英文的新用户文件夹。例如,您可以将文件夹命名为“DavidSmith”。然后,您需要创建三个文件夹(“AppData”,“ Local“,”Temp“)。文件目录C:\ Users \ DavidSmith \ AppData \ Local \ Temp。在高级系统设置中,将修改环境变量TMP和TEMP C:\ Users \ DavidSmith \ AppData \ Local \ Temp.Save它们。修改后,打开RStudio并重试。

注意:在USER VARIABLE中修改了TMP和TEMP。


0
投票

我在更改系统区域设置后遇到了这个问题。使用Sys.getlocale()检查您的语言环境。使用Sys.setLocale("LC_ALL","ENG")将其更改为合适的一个(用适当的一个替换“ENG”)

我不能确定哪种语言环境是合适的,但它似乎与默认的操作系统一致。

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.