20181009python生成器/yield协程/gevent写简单的下载器

1、生成器:

'''第二种生成器'''


# 函数只有有yield存在就是生成器
def test(i):
    while True:
        i += 1
        res = yield i
        print(res)
        i += 1
    return aa   

def main():
    t = test(1)  # 创建生成器对象
    print(next(t))  # next第一次执行从上到下,yield是终点
    print(next(t))
    print(t.send(5))

if __name__ == '__main__':
    main()

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()

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()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值