微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 url 获取文件,然后像本地文件一样读取它?

如何解决如何从 url 获取文件,然后像本地文件一样读取它?

我有一个 jpg 图像,该图像存储在一个 url 中,我需要从中访问和读取二进制/字节数据。

我可以使用 Python 获取文件

import urllib3

http = urllib3.PoolManager()

url = 'link to jpg'

contents = http.request('GET' url)

纯粹使用 contents.data 读取此请求中的数据不会提供正确的二进制文件,但是如果我下载文件并在本地读取它,我会得到正确的二进制文件。但我无法继续阅读文件内容

with open(contents,"rb") as image:
     f = image.read()

使用请求中的字节也不起作用:

with open(contents.data,"rb") as image:
     f = image.read()

如何将 url 中的 jpg 视为本地文件,以便我可以正确读取二进制文件

解决方法

本地读取file时f中得到的结果和contents.data的结果完全一样。

import urllib3

http = urllib3.PoolManager()

url = 'https://tinyjpg.com/images/social/website.jpg'

contents = http.request('GET',url)
with open('website.jpg',"rb") as image:
     f = image.read()

print(f==contents.data)

您可以从代码中的链接下载图片,然后运行此代码,您将收到输出True,这意味着从本地图片文件读取的数据与从网站读取的数据相同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。