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采集百度百科的方法
Jun 05 Python
python在控制台输出进度条的方法
Jun 20 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
Python探索之URL Dispatcher实例详解
Oct 28 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
Opencv实现抠图背景图替换功能
May 21 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
Django中的cookie和session
Aug 27 Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
python 下划线的不同用法
Oct 24 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将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
jquery中ajax学习笔记3
2011/10/16 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
python打开网页和暂停实例
2014/09/30 Python
python去掉行尾的换行符方法
2017/01/04 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
个人工作年终总结
2015/03/09 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python