我希望能够下载图像(到我的电脑或网络服务器)调整大小,然后将其上传到S3。这里涉及的是:
在Python中进行下载部分的推荐方法是什么(即,不想使用外部工具,bash等)。我想将它存储到内存中直到完成(而不是将图像下载到本地驱动器,然后使用它)。非常感谢任何帮助。
答案 0 :(得分:3)
urllib(简单但有点粗糙)和urllib2(功能强大但有点复杂)是推荐的标准库模块,用于从URL(内存或磁盘)中获取数据。对于足够简单的需求,x=urllib.urlopen(theurl)
将为您提供一个对象,允许您访问响应标头(例如,查找图像的内容类型)和数据(如x.read()
); urllib2
的工作方式类似,但允许您控制代理,用户代理,coockies,https,身份验证等,而不仅仅是简单的urllib
。
答案 1 :(得分:1)
Pycurl,urllib和urllib2都是选项。 Pycurl是libcurl的Python接口,urllib和urllib2都是Python标准库的一部分。 urllib很简单,urllib2更强大但也更复杂。
urllib示例:
import urllib
image = urllib.URLopener()
image.urlretrieve("http://sstatic.net/so/img/logo.png")
在这种情况下,文件不存储在本地存储器中,而是存储为具有生成名称的临时文件。
答案 2 :(得分:0)
考虑:
import urllib
f = urllib.urlopen(url_of_image)
image = f.read()
答案 3 :(得分:0)