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代码打包为jar软件的简单方法
Aug 04 Python
关于Python数据结构中字典的心得
Dec 04 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
python中的decorator的作用详解
Jul 26 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
python:接口间数据传递与调用方法
Dec 17 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
python中自带的三个装饰器的实现
Nov 08 Python
python 画函数曲线示例
Dec 04 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 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
Home Coffee Roasting
2021/03/03 咖啡文化
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
python魔法方法-自定义序列详解
2016/07/21 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
本科毕业自我鉴定
2014/03/20 职场文书
《春晓》教学反思
2014/04/20 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
民事起诉书范本
2015/05/19 职场文书
村官2015年度工作总结
2015/10/14 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python