13

我正在尝试在 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

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

4

15 回答 15

17

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

另一种解决方案是安装downloaderdownload.file,使下载过程更容易和跨平台(所有操作系统具有相同参数的一个功能)

install.packages("downloader")
fileUrl <- "https://data.baltimorecity.gov/api/views/dz54-2aru
            /rows.csv?accessType=DOWNLOAD"

require(downloader)
download(fileUrl, "data/cameras.csv", mode = "wb")

希望这次能成功

于 2013-06-25T17:51:42.043 回答
10

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

# Note the http instead of https
file<-'http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD'
read.csv(file)
于 2013-06-25T18:42:52.830 回答
4

尝试另一种方法:..., method = "libcurl")

于 2015-09-26T06:28:47.207 回答
3

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

setInternet2(使用=T)

文件<-“网址”

下载.file(file,destfile="./data/cameras.csv")

于 2014-07-10T06:45:42.470 回答
2

fileUrl1 <- "https://... xyz.csv"

下载.file(fileUrl1, destfile="./data/xyz.csv", method="curl")

使用以下内容(在第一行中使用 http 而不是 https,在第二行中删除 mehod="curl")

fileUrl1 <- "http://... xyz.csv"
下载.file(fileUrl1, destfile="./data/xyz.csv")

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

于 2014-08-06T18:54:54.683 回答
2

@dickoa:考虑到当你这样做时你得到“TRUE”:

file.exists("./data")

我想你最初写的是:

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

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

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

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

于 2014-08-08T13:47:08.313 回答
2

这行得通!

文件<-' http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD ' download.file(file, destfile="cameras.csv")

于 2014-05-04T02:02:48.327 回答
1

我通过省略 https 中的 ssl 后发现了此方法,即

天然气<-“ http://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx

然后将方法设置为“自动”

下载.file(NatGas,destfile =“./TidyData/NatGas.xlsx”,方法=“自动”,模式=“wb”)

于 2015-01-09T13:51:29.590 回答
1

它只是发生在我身上。为了让它工作,你只需要去掉' s'中的' https'并且不要指定' method = curl'。我才刚刚开始,所以不知道它是如何工作的,但是它确实可以完成工作。

于 2015-01-17T07:47:41.920 回答
1

当您调用时download.file(),它不会为您创建目录。
相反,您需要为它创建一个有效的目录来创建文件。
我的猜测是您尚未创建名为的文件夹data

希望这可以帮助。

于 2014-05-10T11:30:34.953 回答
0

我尝试了两种下载相同文件的方法:

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

  2. 另一种方法是:

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

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

于 2014-04-10T04:47:32.940 回答
0

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

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

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

于 2015-01-02T20:00:15.017 回答
0

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

如果你想使用 curl 方法,你需要在你的电脑上安装 curl 库,在http://curl.haxx.se/

于 2013-11-14T08:52:04.390 回答
0

如果您编写 method="libcurl" 那么它将适用于 http 或 https url

于 2019-03-21T05:51:20.330 回答
0

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

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

在此处输入图像描述

再次尝试下载!对我来说效果很好。

于 2020-03-16T08:24:51.310 回答