我正在使用Julia get
包中的Requests
函数(https://github.com/loladiro/Requests.jl)来下载文件。有些文件是PNG图像,当我将返回的对象中的数据写入文件时:
x = get("url here")
outfile = open("file.png", "w")
write(outfile, x.data)
close(outfile)
...它确实将数据写入文件,但是当我尝试将其作为图像打开时,我收到文件损坏警告。
似乎get
没有将文件下载为二进制文件,因为当我使用R函数download.file()
和mode="wb"
(写二进制)参数下载文件时,我在文件中获取不同的数据,它作为图像成功打开。
任何人都对如何正确下载PNG数据或二进制数据有一个好主意吗?
答案 0 :(得分:1)
Requests
包对我来说表现出奇怪的行为,其中多次get
相同的网址导致不同的data
长度,通常比文件短得多。无论如何,HTTPClient
包似乎对我有用:
using HTTPClient
png = get("http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png")
outfile = open("file.png", "w")
write(outfile, png.body.data)
close(outfile)
(对于这种特殊情况,Julia也有便利功能download(url, filename)
。)
答案 1 :(得分:0)
您可以使用download
和HTTP.jl
软件包进行操作,pwd()
可以将文件下载到您的本地目录
using HTTP
HTTP.download("https://www.someURL.JPG",pwd())