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 ElementTree 基本读操作示例
Apr 09 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
在Python中通过threshold创建mask方式
Feb 19 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
python中如何设置代码自动提示
Jul 15 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
如何通过python计算圆周率PI
Nov 11 Python
scrapy头部修改的方法详解
Dec 06 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
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
重命名批处理python脚本
2013/04/05 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python获取交互式ssh shell的方法
2019/02/14 Python
Python读取YAML文件过程详解
2019/12/30 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
python 基于wx实现音乐播放
2020/11/24 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
求职简历中自我评价
2014/01/28 职场文书
高中语文课后反思
2014/04/27 职场文书
离婚财产处理协议书
2014/09/30 职场文书
毕业生个人总结
2015/02/28 职场文书
北京青年观后感
2015/06/15 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS