Python通过aiohttp多线程下载文件

import asyncio
import datetime
import time
import aiohttp
from aiohttp.client_exceptions import ClientConnectorError
# 替换链接地址list
urls = [
]
async def download(url):
filename = url.split('/')[-1]
print(f"Downloading {filename}...")
async with aiohttp.ClientSession() as session:
try:
async with session.get(url) as response:
with open(f"./runtime/download/{filename}", 'wb') as f:
f.write(await response.read())
print(f"{filename} downloaded.")
except ClientConnectorError as e:
print(e)
async def main():
in_time = time.time()
# 创建任务列表
tasks = [asyncio.create_task(download(url)) for url in urls]
# 等待所有任务完成
await asyncio.gather(*tasks)
print("All files downloaded.")
out_time = time.time()
print(datetime.timedelta(seconds=out_time - in_time))
# 运行主程序
if __name__ == '__main__':
print('开始')
asyncio.run(main())
posted @   _迷途  阅读(209)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示