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 18 Python
python中函数传参详解
Jul 03 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
python 三种方法提取pdf中的图片
Feb 07 Python
用Python远程登陆服务器的步骤
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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python多进程中的内存复制(实例讲解)
2018/01/05 Python
python实现数据分析与建模
2019/07/11 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
Python如何转换字符串大小写
2020/06/04 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
个人简历自我鉴定
2013/10/11 职场文书
会展中心部门工作职责
2013/11/27 职场文书
学生爱国演讲稿
2014/01/14 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
教师考核鉴定意见
2015/06/05 职场文书
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis