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设计模式之抽象工厂模式
Aug 25 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
python实现周期方波信号频谱图
Jul 21 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
Python析构函数__del__定义原理解析
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 图像函数大举例(非原创)
2009/06/20 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
js代码实现微博导航栏
2015/07/30 PHP
php计算年龄精准到年月日
2015/11/17 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
JS代码实现电脑配置检测功能
2018/03/21 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
ES6 十大特性简介
2020/12/09 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
企业车辆管理制度
2014/01/24 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
golang 实现两个结构体复制字段
2021/04/28 Golang
Python+DeOldify实现老照片上色功能
2022/06/21 Python