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 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python生成密码库功能示例
May 23 Python
浅谈python可视化包Bokeh
Feb 07 Python
python3爬取各类天气信息
Feb 24 Python
python编程使用协程并发的优缺点
Sep 20 Python
对python调用RPC接口的实例详解
Jan 03 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
Jan 15 Python
python异步实现定时任务和周期任务的方法
Jun 29 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
python如何代码集体右移
Jul 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为php增加openssl模块的方法
2011/06/14 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
Python Django使用forms来实现评论功能
2016/08/17 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
django使用LDAP验证的方法示例
2018/12/10 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
Python语言进阶知识点总结
2019/05/28 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
python中图像通道分离与合并实例
2020/01/17 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
HTML5 解析规则分析
2009/08/14 HTML / CSS
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
辞职信模板(中英文版)
2015/02/27 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js