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使用htpasswd实现基本认证授权的例子
Jun 10 Python
python中nan与inf转为特定数字方法示例
May 11 Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
Python 实现文件打包、上传与校验的方法
Feb 13 Python
对python文件读写的缓冲行为详解
Feb 13 Python
python设置环境变量的作用和实例
Jul 09 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
Python的Tqdm模块实现进度条配置
Feb 24 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 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中spl_autoload_register函数的用法总结
2013/11/07 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
JS实现li标签的删除
2019/04/12 Javascript
Vue基础配置讲解
2019/11/29 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
公司庆典欢迎词
2015/01/26 职场文书
婚育证明样本
2015/06/16 职场文书
建筑工程催款函
2015/06/24 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript