当我们处理本地文件时,我想做的事情很简单,但是当我尝试使用远程URL时,问题就来了。
基本上,我试图从URL提取的文件中创建一个PIL图像对象。当然,我总是可以只获取URL并将其存储在临时文件中,然后将其打开到图像对象中,但这感觉效率很低。
这是我所拥有的:
Image.open(urlopen(url))
它抱怨seek()说不可用,所以我尝试了这个:
seek()
Image.open(urlopen(url).read())
但这也不起作用。有没有更好的方法可以执行此操作,还是可以将这种方式写入临时文件?
在Python3中,StringIO和cStringIO模块不见了。
在Python3中,您应该使用:
from PIL import Image import requests from io import BytesIO response = requests.get(url) img = Image.open(BytesIO(response.content))