2010-02-27 98 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