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元组操作实例解析
Sep 23 Python
Python实现Const详解
Jan 27 Python
python实现自动发送报警监控邮件
Jun 21 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
Python理解递归的方法总结
Jan 28 Python
谈一谈基于python的面向对象编程基础
May 21 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
python设置随机种子实例讲解
Sep 12 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
Python异常处理机制结构实例解析
Jul 23 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 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在字符断点处截断文字的实现代码
2011/04/21 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
Flask数据库迁移简单介绍
2017/10/24 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
css3中transition属性详解
2014/09/02 HTML / CSS
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
成考报名单位证明范本
2014/01/16 职场文书
电大本科自我鉴定
2014/02/05 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
处级干部考察材料
2014/12/24 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
煤矿安全保证书
2015/02/27 职场文书
2016小学新学期寄语
2015/12/04 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
HttpClient实现表单提交上传文件
2022/08/14 Java/Android