download.file的mode =参数是做什么的?

时间:2016-12-01 18:59:08

标签: r

这是我第二次在线搜索download.file的帮助,并通过调用mode参数解决了我的问题,但我不知道是什么原因或何时/为何使用它们。刚看到这个建议并通过了论证就解决了我的问题。

download.file()上的R帮助文件有点过于简单,并没有告诉我何时使用特定模式

  

模式字符。用于写入文件的模式。有用的值是   " w"," wb" (二进制)," a" (追加)和" ab"。仅用于"内部"   方法。 (另请参阅“详细信息”。)

为了得到正确答案,我必须通过模式=" wb"下面;但为什么(也许与https中的s有关,或者我现在应该尝试使用试验和错误)。

fileUrl <-"https://d396qusza40orc.cloudfront.net/getdata%2Fjeff.jpg"
download.file(fileUrl, destfile = "./data/leekjpg.jpg", mode="wb")

我想至少对download.file中的方法和模式参数有一些基本的了解,并希望您的解释或暗示性读取。

我正在下载更多文件,让我感到困扰的是,我不知道何时传递一些相关的论点。

1 个答案:

答案 0 :(得分:2)

这就是文档所说的:

  

如果未提供模式且url以.gz,.bz2,.xz,.tgz之一结尾,   .zip,.rda或.RData完成二进制传输。自Windows(不同于   Unix-alikes)确实区分了文本和二进制文件   需要使用mode =“wb”传输其他二进制文件类型。   unix进度条跟踪传输。如果文件长度已知,   等号表示完成转移的2%:否则为a   点代表10Kb。编写为下载二进制文件的代码必须使用   mode =“wb”,但文本传输引起的问题只会是   在窗口看到

基本上,当在类Unix操作系统上使用时,"w""wb"是相同的,因为它们不区分文本和二进制文件,但Windows确实如此。

在Windows中,行结尾略有不同。为了安全起见,我在打开文本文件时使用“w”,而"wb"当文件不应该是文本时,如jpg