download.file 的 mode= 参数有什么作用?

Bha*_*ail 1 r

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

\n\n

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

\n\n
\n

模式字符。写入文件的模式。有用的值包括“w”、“wb”(二进制)、“a”(追加)和“ab”。仅用于“内部”\n 方法。(另请参见 \xe2\x80\x98Details\xe2\x80\x99。)

\n
\n\n

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

\n\n
fileUrl <-"https://d396qusza40orc.cloudfront.net/getdata%2Fjeff.jpg"\ndownload.file(fileUrl, destfile = "./data/leekjpg.jpg", mode="wb")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想至少对 download.file 中的方法和模式参数有一些初步的了解,并且希望您能提供解释或建议性的阅读。

\n\n

我正在下载更多文件,但令我困扰的是我不知道何时传递一些相关参数。

\n

小智 5

这就是文档所说的:

如果未提供模式并且 url 以 .gz、.bz2、.xz、.tgz、.zip、.rda 或 .RData 之一结尾,则完成二进制传输。由于 Windows(与 Unix 类似)确实区分文本和二进制文件,因此需要注意其他二进制文件类型以 mode =“wb”传输。unix 进度条跟踪传输。如果文件长度已知,等号代表已完成传输的 2%:否则点代表 10Kb。下载二进制文件的代码必须使用 mode = "wb",但文本传输引起的问题只会在 Window 上出现

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

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