Python3 下载图片的几种方式速度对比

2023-10-27

Python3 下载图片的几种方式速度对比

import os
import time
import urllib3
import requests
from PIL import Image
from io import BytesIO
from urllib import request
import numpy as np
urls = ["https://cdn.sstatic.net/Sites/stackoverflow/img/logo.png"]

conf = [1, 0, 0, 0]


def solution1(url):
    response = requests.get(url)
    im = Image.open(BytesIO(response.content))
    return im


def solution2(url):
    file = BytesIO(request.urlopen(url).read())
    im = Image.open(file)
    return im


def solution3(url):
    im = Image.open(urllib3.requests.urlopen(url))
    return im


def solution4(url):
    im = Image.open(requests.get(url, stream=True).raw)
    return im


index = 0
for f in conf:
    index += 1
    if f:
        for url in urls:
            time0 = time.time()
            s = "solution" + index.__str__() + '(url)'
            im = eval(s)
            im = np.array(im)
            print(im.shape)
            sum_time = time.time() - time0
            print('Cost time:', sum_time)
多次实验发现solution1的下载速度最快
Tip:requests.get(url, stream=True),stream=True代表使用时再下载,只是先建立一个链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3 下载图片的几种方式速度对比 的相关文章

随机推荐

  • 测试开发必备技能

    一 掌握简单的Java基础知识 1 基本数据类型 包装类型 2 集合 List Set Map 3 能够看懂代码 不需要懂代码是怎么写的 二 数据库方面知识 1 基本常用的SQL会写 比如 查询 新增 更新 删除语句 2 会使用数据库客户端
  • 如何让PHPstorm更友好的支持Laravel

    1 在Laravel根目录下执行以下命令composer require barryvdh laravel ide helper 2 在Laravel项目中修改config app文件 将以下代码添加至providers数组中 Barryv
  • Android Studio 实现APP内部更新版本

    Android Studio 实现APP内部更新版本 需求 开发android app时 我们希望不通过应用市场而实现app内部更新 权限配置 我们需要先在AndroidManifest xml文件申请权限 允许应用程序访问有关网络的信息
  • Ubuntu安装singularity

    Ubuntu安装singularity 1 问题情景 2 解决 总结 1 问题情景 go语言安装后 安装singularit过程中出现了permission denied情况 原因是使用指定的确切版本 而不是最新版本 Configuring
  • ios文件操作

    1 NSFIleManager 获取文件名 文件管理 创建一个文件管理器 NSFileManager fm NSFileManager alloc init NSError error error输出参数 理解输入输出参数 传指针可以跨栈获
  • Java课题笔记~ 过滤器

    概念 过滤器 顾名思义 就是在源数据和目的数据之间起过滤作用的中间组件 过滤器可以动态地拦截请求和响应 以变换或使用包含在请求或响应中的信息 filter是对客户端访问资源的过滤 符合条件放行 不符合条件不放行 并且可以对目标资源访问前后进
  • Redis 学习笔记(十四)Redis Cluster介绍与搭建

    Redis Cluster 介绍与搭建 1 Redis Cluster介绍 Redis Cluster是Redis的分布式解决方案 在Redis 3 0版本正式推出的 有效解决了Redis分布式方面的需求 当遇到单机内存 并发 流量等瓶颈时
  • Linux 下 cuda 安装教程

    1 首先按照NVIDIA document上的规范 完成post install http docs nvidia com cuda cuda installation guide linux index html post install
  • JavaScript 算法 -- 动态规划

    文章目录 动态规划 动态规划与分而治之的区别 例题一 爬楼梯 例题二 打家劫舍 动态规划 动态规划是算法设计中的一种方法 它将一个问题分解为相互重叠的子问题 通过反复求解子问题 来解决原问题 动态规划与分而治之的区别 动态规划的子问题是相互
  • Elevator

    Elevator include
  • 超简单两步走解决Altium Designer 报错:Unknow Pin的解决方法

    AD 软件从原理图更新到PCB出现Unknow Pin 错误非常普遍 有因为元件封装问题 也有的是网络表问题 我找到一种超简单的解决办法 下图是一个超简单的运放电路 因为是一次画成并且已更新了PCB 并且没有出错 现在人为添上一个二极管 然
  • 基于单片机的空气质量监测

    设计简介 本设计是基于单片机的空气质量监测 主要实现以下功能 可实现LCD1602显示DS1302时间以及空气质量值 可通过按键对时间进行设置 可通过按键对空气质量阈值进行设置 可通过按键设置时间区间 当前时间在设置时间范围时 打开排风继电
  • php使用PhpSpreadsheet导入Excel表格

    一 安装 使用 composer 将 PhpSpreadsheet 安装到项目中 composer require phpoffice phpspreadsheet 二 导入 1 实例化读取类 文件格式是 xlsx 文件 objReader
  • 柚!音乐小程序 ---借鉴网易云APP设计(运用网易云真实Api)

    参考小破站小程序教程 通过点击每日推荐可以进行音乐播放 上一首下一首切换 前提要进行登录 最近可能登陆会有一些问题 运气好就登录进去了 服务器的问题 主要实现功能 点击每日推荐 会展示30首每日根据网易云推荐的歌曲 点击音乐进行播放 可以切
  • 6. 用Flask-Moment本地化日期和时间

    缘起 不同时区的时间不一样 而服务器要用的是统一的UTC时间 就跟实际中的格林威治时间一样 其他时区都以它为参考 这就需要服务器获取计算机本地的时间 一个elegant的解决方案是 把时间单位 time units 发送给Web浏览器 转换
  • unity3d实现模型点击事件

    一 实现 实现3D物体上的点击事件 点击物体Statue 01 弹出界面Image 二 Statue 01 代码 拖到Statue 01的Inspector面板上 using System Collections using System
  • 干货分享 - MatLab

    目录 1 前言 2 Latex基础 3 Latex尝鲜 4 Latex在MatLab中换行 5 Latex在MatLab中小花招 6 附录1 Tex对照表 7 附录2 常用Tex字符 1 前言 LaTeX语言作为应用最广泛的Tex格式 Te
  • 树莓派的蓝牙通讯(BLUEZ、GATTLIB)

    一 准备工作 我使用的蓝牙模块是大夏龙雀的DX BT16 支持BLE4 2协议 树莓派的型号为4b 操作系统为64位的ubuntu 18 04 提前说明一下 因为我没有安装桌面 所以很多工具都需要自己手动安装 首先先创建一个root用户 方
  • 学习typeScript写服务(nestjs)【四,掉接口将数据展示前端页面(vue3+ts)】

    文章目录 前言 一 安装elementUI 二 搭建路由及静态页面 1 路由搭建 2 静态页面 三 封装axios请求 1 首先安装axios 2 请求封装 四 页面掉接口实现增删改查 1 先在创建一个文件用于存放接口的 2 页面实现增删改
  • Python3 下载图片的几种方式速度对比

    Python3 下载图片的几种方式速度对比 import os import time import urllib3 import requests from PIL import Image from io import BytesIO