1 Star 5 Fork 3

Paul / asyncio_demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
3.6_future3.py 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
Paul 提交于 2020-06-26 01:33 . 首次提交
# -*- encoding: utf-8 -*-
"""
@Time : 2020/6/25
@Author : hongboli
"""
import asyncio
import requests
async def download_image(url):
# 发送网络请求,下载图片(遇到网络下载图片的IO请求,自动化切换到其他任务)
print("开始下载:", url)
loop = asyncio.get_event_loop()
# requests模块默认不支持异步操作,所以就使用线程池来配合实现了。
future = loop.run_in_executor(None, requests.get, url)
response = await future
print('下载完成')
# 图片保存到本地文件
file_name = url.rsplit('_')[-1]
with open(file_name, mode='wb') as file_object:
file_object.write(response.content)
if __name__ == '__main__':
url_list = [
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590918729593&di=52738a7ab704a17c742c89a7f1b79ec3&imgtype=0&src=http%3A%2F%2Fe.hiphotos.baidu.com%2Fzhidao%2Fpic%2Fitem%2F7dd98d1001e939014d91b6e079ec54e737d19658.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590918597135&di=69ded1b30923b75e6baa210889bdbeef&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F2017-12-29%2F5a45a53b2763d.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590918536758&di=5a9d49f622a3c2f092830713174a89d2&imgtype=0&src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fwallpaper%2F1305%2F16%2Fc4%2F20990657_1368686545119.jpg'
]
tasks = [download_image(url) for url in url_list]
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
Python
1
https://gitee.com/paultest/asyncio_demo.git
git@gitee.com:paultest/asyncio_demo.git
paultest
asyncio_demo
asyncio_demo
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891