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内建数据结构详解
Feb 03 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
Python中GIL的使用详解
Oct 03 Python
Python实现分段线性插值
Dec 17 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
Python标准库itertools的使用方法
Jan 17 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
Python爬虫入门有哪些基础知识点
Jun 02 Python
只用20行Python代码实现屏幕录制功能
Jun 02 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
十天学会php(3)
2006/10/09 PHP
php header示例代码(推荐)
2010/09/08 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
php实现的简单日志写入函数
2015/03/31 PHP
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
js倒计时小程序
2013/11/05 Javascript
document.write的几点使用心得
2014/05/14 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
python读写文件操作示例程序
2013/12/02 Python
浅谈python之新式类
2018/08/12 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
学Python 3的理由和必要性
2019/11/19 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
怎样自定义一个异常类
2016/09/27 面试题
汽修专业学生自我鉴定
2013/11/16 职场文书
大学生创业感言
2014/01/25 职场文书
学校运动会霸气口号
2014/06/07 职场文书
自我推荐信格式模板
2015/03/24 职场文书
二审代理词范文
2015/05/25 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python