Python3实现文件下载,显示下载进度
Python3实现文件下载,显示下载进度
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 实现文件下载,显示下载进度
import requests
def download_file(url, save_path=""):
if save_path == "":
save_path = url.split('/')[-1]
with requests.get(url, stream=True) as fget:
# 此时只有响应头被下载
file_size = int(fget.headers["Content-Length"])
print('-' * 32)
print(f"Name: {save_path}")
print(f"Size: {file_size/(1000**2)}Mb")
print(f"Link: {url}")
print('-' * 32)
chunk_size = 512
file_done = 0
with open(save_path, "wb") as fw:
for chunk in fget.iter_content(chunk_size):
fw.write(chunk)
file_done = file_done + chunk_size
percent = file_done / file_size
if file_done <= file_size:
print(f"Download: {percent:.2%}", end='\r')
else:
print("Download: 100% ")
if __name__ == "__main__":
download_file("https://www.baidu.com/img/flexible/logo/pc/result.png")
如有错漏,欢迎指正!谢绝转载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)