python生成器/yield协程/gevent写简单的图片下载器功能示例


Posted in Python onOctober 28, 2019

本文实例讲述了python生成器/yield协程/gevent写简单的图片下载器功能。分享给大家供大家参考,具体如下:

1、生成器:

'''第二种生成器'''
# 函数只有有yield存在就是生成器
def test(i):
  while True:
    i += 1
    res = yield i
    print(res)
    i += 1
  return res
def main():
  t = test(1) # 创建生成器对象
  print(next(t)) # next第一次执行从上到下,yield是终点
  print(next(t))
  print(t.send(5))
if __name__ == '__main__':
  main()

运行结果:

2
None
4
5
6

2、yield协程demo:

def run1():
  while True:
    print('run1____')
    yield
def run2():
  while True:
    print('run2____')
    yield
def main():
  while True:
    next(run1())
    next(run2())
if __name__ == '__main__':
  main()

3、gevent写简单的下载图片

import gevent
import requests,lxml
# from gevent import monkey
# monkey.patch_all()
def get_pic(url, list):
  headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
  }
  response = requests.get(url, headers=headers)
  with open('./pic/'+str(list.pop(0)) + '.png', 'wb') as f:
    f.write(response.content)
def get_pic_name_list():
def main():
  get_pic_name_list()
  list = [x for x in range(9999)]
  gevent.joinall([
    gevent.spawn(get_pic, 'http://pic8.iqiyipic.com/image/20181008/eb/af/v_116880780_m_601_m11_180_236.jpg', list),
    gevent.spawn(get_pic, 'http://pic6.iqiyipic.com/image/20181004/a2/2b/v_112874372_m_601_m15_180_236.jpg', list)
  ])
if __name__ == '__main__':
  main()

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中zip()函数用法实例教程
Jul 31 Python
python中循环语句while用法实例
May 16 Python
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python 使用shutil复制图片的例子
Dec 13 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 #Python
PYTHON实现SIGN签名的过程解析
Oct 28 #Python
Python爬虫使用代理IP的实现
Oct 27 #Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 #Python
Python搭建代理IP池实现检测IP的方法
Oct 27 #Python
浅析使用Python搭建http服务器
Oct 27 #Python
Python搭建代理IP池实现存储IP的方法
Oct 27 #Python
You might like
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python实现命令行通讯录实例教程
2016/08/18 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
课堂教学改革实施方案
2014/03/17 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
检讨书模板
2015/01/29 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python