R中的download.file()具有非零退出状态

时间:2013-06-25 14:49:43

标签: r download

我正在尝试在R 3.0.1(Windows 7)中下载文件:

    fileUrl <- "https://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD"
    download.file(fileUrl, destfile="./data/cameras.csv", method="curl")

我检查了网址和我的互联网连接,他们似乎工作得很好。但是,我收到了这条消息:

    Warning message:  
    In download.file(fileUrl, destfile = "./data/cameras.csv", method = "curl") : 
    download had nonzero exit status

在网上找不到任何帮助,有谁知道如何解决这个问题?

15 个答案:

答案 0 :(得分:17)

仍然不明白为什么删除method = "curl"无法解决问题。

另一种解决方案是安装包裹downloader的{​​{1}}包,使下载过程更容易,跨平台(所有操作系统具有相同参数的一个功能)

download.file

希望这次能够奏效

答案 1 :(得分:9)

@dickoa的答案可能有效,但我认为主要问题是您不必要地使用https。我认为这有效:

# Note the http instead of https
file<-'http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD'
read.csv(file)

答案 2 :(得分:4)

尝试其他方法: var obj = oSelectedItem.getBindingContext().getObject(); var context = oEvent.getSource().getBindingContext().getObject(); context.ldate = obj.ldate; context.ltime = obj.ltime; oController.onRowUpdate("/modelData(pdsnr='"+context.pdsnr+"')", context);

答案 3 :(得分:3)

下载前使用setInternet2。它对我有用。

setInternet2(使用= T)

file&lt; - &#34; URL&#34;

download.file(file,destfile =&#34; ./ data / cameras.csv&#34;)

答案 4 :(得分:2)

这有效!

  

文件&LT; - &#39; http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD&#39;   download.file(file,destfile =&#34; cameras.csv&#34;)

答案 5 :(得分:2)

  

fileUrl1&lt; - “https:// ... xyz.csv”

     

download.file(fileUrl1,destfile =“。/ data / xyz.csv”,method =“curl”)

使用以下内容(第1行中的http代替https,第2行中删除mehod =“curl”)

  

fileUrl1&lt; - “http:// ... xyz.csv”
  download.file(fileUrl1,destfile =“./ data / xyz.csv”)

试试这个,你可以下载csv文件

答案 6 :(得分:2)

@dickoa: 鉴于您在执行此操作时获得“正确”的事实:

file.exists("./data")

我想你最初写过:

if (!file.exists("data")) { file.create("data") }

在执行您共享的代码之前下载csv。但是,这会创建一个文件“data”,而不是目录。因此,应在代码之前在R脚本中编写以下内容:

if (!file.exists("data")) { dir.create("data") }

在此之后,我相信您的代码应该可以正常工作。希望这会有所帮助。

答案 7 :(得分:1)

当您致电download.file()时,它不会为您创建目录 相反,您需要为其创建一个有效的目录来创建该文件 我的猜测是你还没有创建名为data的文件夹。

希望这有帮助。

答案 8 :(得分:1)

我发现这可以通过省略https中的ssl来实现

NatGas&lt; - &#34; http://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx&#34;

然后将方法设置为&#34; auto&#34;

download.file(NatGas,destfile =&#34; ./ TidyData / NatGas.xlsx&#34;,method =&#34; auto&#34;,mode =&#34; wb&#34;)

答案 9 :(得分:1)

它刚好发生在我身上。为了使其正常工作,您只需要删除“s”中的“https”,也不要指定“method = curl”。我刚刚开始,所以不知道它是如何工作的,但嘿,它完成了这项工作。

答案 10 :(得分:0)

尝试将“method = curl”中的行更改为“method = internal”

如果您想使用curl方法,则需要将curl库安装到您的计算机上http://curl.haxx.se/

答案 11 :(得分:0)

我尝试了两种方法来下载同一个文件:

  1. 使用install.packages("downloader")下载“downloader”软件包,然后使用require(downloader)命令加载软件包。在此之后,使用命令:download(fileurl,"./data/camera.csv",mode="wb")

  2. 另一种方法是:

    文件&LT; - 'http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD' read.csv(文件)

  3. 并使用data.frame方法保存write.csv文件以保存文件。

答案 12 :(得分:0)

我发现我必须从haxx站点实际下载curl,然后将其位置添加到系统环境变量中的路径。之后

download.file(fileURL, destfile = "data/cameras.csv", method = "curl") 

命令工作正常。这是在Windows 7,64位机器上。

答案 13 :(得分:0)

如果您编写method =“ libcurl”,则它将同时适用于http或https url

答案 14 :(得分:0)

几秒钟前,我遇到了相同的错误,手头上的任务完全相同。 对我来说,问题是我不在正确的工作目录中。

解决方案: 在右下角窗口(比较图片)中,单击“更多”,然后单击 “设置为工作目录”。

enter image description here

再次尝试下载!对我来说,它工作正常。