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进行稳定可靠的文件操作详解
Dec 31 Python
使用Python的Twisted框架实现一个简单的服务器
Apr 16 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 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的开合式多级菜单程序
2006/10/09 PHP
如何做到多笔资料的同步
2006/10/09 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
原生JavaScript实现轮播图
2021/01/10 Javascript
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
python程序输出无内容的解决方式
2020/04/09 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
司机岗位职责
2013/11/15 职场文书
函授毕业生的自我鉴定
2013/11/26 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
毕业生个人总结
2015/02/28 职场文书
创先争优个人总结
2015/03/04 职场文书
催款函范本大全
2015/06/24 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL