【问题标题】:What does the mode= argument of download.file do?download.file 的 mode= 参数有什么作用?
【发布时间】:2016-12-01 18:59:07
【问题描述】:

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

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

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

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

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

我希望至少对 download.file 中的方法和模式参数有一些基本的了解,并感谢您的解释或建议性阅读。

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

【问题讨论】:

    标签: r


    【解决方案1】:

    这是文档所说的:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2013-07-20
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多