您好,登錄后才能下訂單哦!
本文實例講述了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程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。