2010-02-27 95 views
2

我试图从URL下载图像并将它们传递给PIL。Python PIL和StringIO

我想使用尽可能少的资源,特别是RAM。处理这个问题的最好方法是什么?我有建议使用cStringIO。

+0

你想要对他们做什么?你可以勾画这个过程吗? – extraneon 2010-02-27 18:29:52

+0

@extraneon:谢谢你的提问!我试图从网页下载图片,通过PIL检查页面上每个图片的大小,选择最好的图片,缩略图并上传到Amazon S3。这是整个过程^^。 – RadiantHex 2010-02-27 23:12:57

+2

您是否考虑过将程序拆分为将程序集下载到临时目录以及另一个程序来处理这些下载?一般来说,磁盘空间比RAM要少一点,出站带宽往往比传入的更加珍贵。这可能更容易与2个独立的脚本平衡。 – extraneon 2010-02-28 16:50:08

回答

4

不幸的是,从网络功能,如urllib2.urlopen()文件喜欢并不支持所有必要的方法,所以你需要在为了能够将它们传递给Image.open()读取数据到StringIOcStringIO

+0

我有同样的问题,这个答案一再出现。似乎像StringIO是要走的路,那么! – heltonbiker 2011-08-18 03:08:20