python读取url中数据_如何从Python中读取URL中的图像数据?

该博客讨论了如何在Python中高效地从URL读取并处理图像数据,避免使用临时文件。文中提供了多种解决方案,包括使用StringIO、requests库和PIL.Image模块的组合。
摘要由CSDN通过智能技术生成

如何从Python中读取URL中的图像数据?

当我们处理本地文件时,我正在尝试做的事情相当简单,但是当我尝试使用远程URL执行此操作时会出现问题。

基本上,我正在尝试从URL中提取的文件中创建PIL图像对象。 当然,我总是可以获取URL并将其存储在临时文件中,然后将其打开到图像对象中,但这样效率非常低。

这就是我所拥有的:

Image.open(urlopen(url))

它散开了抱怨seek()不可用,所以我试过这个:

Image.open(urlopen(url).read())

但这也不起作用。 有没有更好的方法来做到这一点,或者写一个临时文件是可接受的做这种事情的方式?

8个解决方案

166 votes

你可以尝试使用StringIO

import urllib, cStringIO

file = cStringIO.StringIO(urllib.urlopen(URL).read())

img = Image.open(file)

Fábio Diniz answered 2019-06-06T22:19:02Z

163 votes

在Python3中,StringIO和cStringIO模块已经消失。

在Python3中你应该使用:

from PIL import Image

import requests

from io import BytesIO

response = requests.get(url)

img = Image.open(BytesIO(respon

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值