协程 4.并发下载多文件
2021/12/15 6:16:54
本文主要是介绍协程 4.并发下载多文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
并发下载多文件
main 1.定义下载的文件路径 2.调用执行下载的方法 download 1.根据url地址请求网络资源 2.在本地创建文件 3.读取网络资源并写入到本地文件 4.处理异常
from gevent import monkey monkey.patch_all() import urllib.request import gevent def download_img(img_url,file_name): try: # 根据url地址请求网络资源 response_data = urllib.request.urlopen(img_url) # 在本地创建文件 with open('download/'+file_name,'wb') as f: print(f'开始下载:{file_name}') # 读取网络资源并写入到本地文件 while True: file_data = response_data.read(409600) if not file_data: break f.write(file_data) # 处理异常 except Exception as e: print(f'下载发生错误:{file_name}:{e}') else: print(f'下载成功:{file_name}') def main(): # 定义下载的文件路径 img_url1 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20200609/2/10/2208x1242.jpg' img_url2 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20181120/7/2208x1242.jpg' img_url3 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20181120/1/2208x1242.jpg' img_url4 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20190705/11/2208x1242.jpg' img_url5 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20200609/1/2/2208x1242.jpg' img_url6 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20200729/10/2208x1242.jpg' img_url7 = 'https://yys.res.netease.com/pc/zt/20170731172708/data/picture/20200628/6/2208x1242.jpg' # 调用执行下载的方法 # download_img(img_url1,'1.jpg') gevent.joinall([ gevent.spawn(download_img, img_url1, '1.jpg'), gevent.spawn(download_img, img_url2, '2.jpg'), gevent.spawn(download_img, img_url3, '3.jpg'), gevent.spawn(download_img, img_url4, '4.jpg'), gevent.spawn(download_img, img_url5, '5.jpg'), gevent.spawn(download_img, img_url6, '6.jpg'), gevent.spawn(download_img, img_url7, '7.jpg'), ]) if __name__ == '__main__': main()
这篇关于协程 4.并发下载多文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南