首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Download.file中的警告消息:下载具有非零退出状态

Download.file中的警告消息:下载具有非零退出状态
EN

Stack Overflow用户
提问于 2014-03-15 22:09:41
回答 5查看 5.8K关注 0票数 4

我正在从data.gov网站下载数据,在这个过程中我得到了以下两种类型的错误:

代码语言:javascript
复制
fileUrl <- "http://catalog.data.gov/dataset/expenditures-on-children-by-families"
download.file(fileUrl,destfile=".data/studentdata.csv",method="curl")
Warning message:
In download.file(fileUrl, destfile = ".data/studentdata.csv", method = "curl") :
  download had nonzero exit status

我尝试按照其他论坛中的建议删除method="curl“,但是我再次收到这个新的错误

代码语言:javascript
复制
download.file(fileUrl,destfile=".data/studentdata.csv")
Error in download.file(fileUrl, destfile = ".data/studentdata.csv") : 
  cannot open destfile '.data/studentdata.csv', reason 'No such file or directory'
EN

回答 5

Stack Overflow用户

发布于 2019-04-12 23:42:17

我认为有两个主要因素导致你的curl不能很好地工作。

First,问题出在你的网址上。fileUrl <- "http://catalog.data.gov/dataset/expenditures-on-children-by-families"。在您的URL中,它没有引用到csv文件。因此,即使将目标设置为destfile = ".data/studentdata.csv"csv文件,它们也不起作用

我有一个使用相同代码(不同的数据集)获取csv数据集的示例:

  1. DataURL<- "https://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD" (此链接指向使用curl)

的rows.csv file)

  • download.file(DataURL, destfile="./data/rows.csv", method="curl") (方法完全相同

第二个,之前我有同样的问题,curl不工作,即使我使用了一个正确的网址,引用一个csv文件。然而,当我进行更深入的诊断时,我发现了一些有趣的事实,为什么我的curl方法不能正常工作。那是我的R会话程序。我使用了32-bit R,其中出现了错误。后来,我尝试将会话更改为64-bit R。令人惊讶的是,当时下载状态为running。要查看您的R会话架构(无论您使用的是32-bit还是64-bit),请键入您的R:

代码语言:javascript
复制
sessionInfo()

R版本3.5.3 (2019-03-11)

平台: x86_64-w64-ming32/x64 (64位)

运行环境: Windows >= 8 x64 (build 9200)

您必须将R,从32-bit切换到64-bit,以避免'curl' call had nonzero exit status。您转到R目录文件夹,然后运行64-bit R。

如果您使用的是Windows并将R安装在默认路径文件夹中,则可以运行此C:\Program Files\R\R-3.5.3\bin\x64\R.exe。(我使用的是3.5.3版本,因此可能与您的版本不同)

如果您使用的是R-studio,则可以在menubar Tools -> Global Options -> R version -> Change -> Use your machine's default version of R64 (64-bit) -> OK上切换R会话。然后重新启动R-studio。

但是,这取决于您的操作系统架构。如果你使用的是32-bit操作系统,因此你必须找到另一种方法来解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2014-03-16 02:14:26

因此,查看download.file(...)的代码,如果您指定method="curl",该函数将尝试使用curl外壳命令。如果您的系统上不存在此命令,您将收到上面的错误。

如果不指定方法,则默认使用内部R方法进行下载,这显然适用于您的系统。在这种情况下,该函数试图将文件放在.data/studentdata.csv中,但显然没有.data目录。试着把.拿出来。

当此下载生效时,您将获得text/html文件,而不是csv文件。您的url指向网页,而不是下载链接。该页面确实有一个下载链接,但不幸的是它是一个pdf,而不是一个csv。

最后,如果您的目标是将数据放在R中(是吗?),并且如果链接实际生成csv文件,则可以更容易地使用

代码语言:javascript
复制
df <- read.csv(fileUrl)
票数 0
EN

Stack Overflow用户

发布于 2014-05-26 00:48:47

如果我没弄错的话,这里只有一个简单的打字错误。我怀疑你有一个"data“目录,而不是一个".data”目录--在这种情况下,你唯一的问题是你的destfile字符串需要以"./data“开头,而不是".data”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22424872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档