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 pickle 和 shelve模块的用法
Sep 16 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
用Python实现随机森林算法的示例
Aug 24 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
python绘制条形图方法代码详解
Dec 19 Python
python使用matplotlib画饼状图
Sep 25 Python
python hook监听事件详解
Oct 25 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
python进行参数传递的方法
May 12 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 eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python内置函数的用法实例教程
2014/09/08 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
自荐信的两点禁忌
2013/10/30 职场文书
自荐信格式
2013/12/01 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
Python socket如何解析HTTP请求内容
2022/02/12 Python
MySQL 条件查询的常用操作
2022/04/28 MySQL