python生成器/yield协程/gevent写简单的图片下载器功能示例
作者:以梦为马越骑越傻 发布时间:2022-02-25 10:08:03
标签:python,生成器,yield协程,gevent图片下载器
本文实例讲述了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程序设计有所帮助。
来源:https://blog.csdn.net/weixin_42670402/article/details/83021436
0
投稿
猜你喜欢
- 用for循环实现1~n求和的方法def main(): sum = 0 n = int(input('n=&
- 代数运算定义加法运算图像叠加需要满足该条件:两幅图像的像素必须相同(尺寸,形状)减法运算乘法运算1、图像的局部显示。2、用二值蒙版图像与原图
- 在网页设计发展到一定阶段的时候就必然会和其他学科或领域只是产生交汇和共鸣,在阅读《超越CSS:web设计艺术精髓》这本书的时候,发现原来we
- 作者:Robert Lair and Jason Lefebvr Intensity Software, Inc.
- dictPython内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)
- 炸金花题目很简单:就是自己写一个程序,实现诈金花游戏的发牌、判断输赢。规则:一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢。牌
- 从今天开始起,基督山将和大家一起进入ASP.net 诸多程序的学习中,老实说,.net到底是法宝还是垃圾,我们拭目以待。有任何问题,联络基督
- PyQt5 Qt Designer (Qt设计师)PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发.Qt是强大的GU
- 很多小伙伴都不会在家里或者办公室安装网络摄像头或监视摄像头。但是有时,大家又希望能够随时随地观看视频直播。大多数人会选择使用IP摄像机(In
- 在自然语言处理过程中,全角、半角的的不一致会导致信息抽取不一致,因此需要统一。有规律(不含空格):全角字符unicode编码从65281~6
- using System; using System.Data; using System.Configuration; using Sys
- 前言django,web开发中,用django-debug-toolbar来调试请求的接口,无疑是完美至极。 可能本人,见识博浅,才说完美至
- 本文实例为大家分享了JavaScript缓动动画函数的封装代码,供大家参考,具体内容如下本文将从封装缓动动画的以下几个部分进行封装(1、单个
- requests是常用的请求库,不管是写爬虫脚本,还是测试接口返回数据等。都是很简单常用的工具。这里就记录一下如何用requests发送js
- 通过Python操作注册表有两种方式,第一种是通过Python的内置模块 _winreg;另一种方式就是Win32 Extension Fo
- 在网上有很多相关主题的讨论,但是一般都是用Iframe和XMLHTTP来实现。Iframe的实现可能是最常看到的。很多论坛和聊天室的无刷新效
- MenuEverywhere 是Mac OS X上的一款小程序,前一阵刚为其完成了程序图标设计。© 2011 IconMo
- 当您使用FILESYSTEMOBJECT(fso)对象获得某个目录下的文件列表的时候,你有没有发现无法控制它们的排序方式,比如按照名字排序,
- 目录一、jieba库概述二、jieba库安装三、jieba分词的原理四、jieba分词的3种模式五、jieba库常用函数六、文本词频示例七、
- 在python开发的过程中,经常会遇到需要打印各种信息。海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性。这时候,如