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基于右递归解决八皇后问题的方法
May 25 Python
Python处理Excel文件实例代码
Jun 20 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
在pycharm中显示python画的图方法
Aug 31 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
python基于tkinter实现gif录屏功能
May 19 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
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php实现点击可刷新验证码
2015/11/07 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
重定向实现代码
2006/11/20 Javascript
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
JQuery live函数
2010/12/24 Javascript
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python和Go语言的区别总结
2019/02/20 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
高山背包:High Sierra
2017/11/23 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
如何签定毕业生就业协议书
2014/09/28 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL