学习异步模块出现的问题
代码逻辑
遍历列表的同时构建task
异步请求写入
问题出现在请求这个方向上
这个异步的方式错在哪里?
import asyncio
import aiofiles
import aiohttp
async def write_pict(url,name):#异步获取
async with aiohttp.ClientSession() as partten:#构建请求会话的格式
with partten.get(url=url) as resp:
async with aiofiles.open(name,'wb')as fp:#异步写入
await fp.write(resp.content.read())#await表示开关等待
async def main():
urls = [
'https://www.keaidian.com/uploads/allimg/190424/24110307_8.jpg',
'https://scpic.chinaz.net/files/pic/pic9/202009/apic27858.jpg',
'https://www.keaidian.com/uploads/allimg/190424/24110307_20.jpg'
]
func_url = []
for url in urls:
name = url.rsplit('/',1)[1]
func_url.append(asyncio.create_task(write_pict(url=url,name=name)))
for func in func_url:
await func
if __name__ == '__main__':
asyncio.run(main())