Python 给下载文件显示进度条和下载时间的实现

yizhihongxing
  1. 使用urllib库下载文件并显示进度条和下载时间

首先,我们需要导入必要的库:urllib.request、tqdm、time。

import urllib.request
from tqdm import tqdm
import time

然后,我们定义一个函数来下载文件。这个函数需要传入两个参数:文件的url和保存路径。

def download_file_with_progressbar(url, save_path):
    # 发送请求
    response = urllib.request.urlopen(url)
    file_size = int(response.headers["Content-Length"])

    # 下载文件并显示进度条
    print("Downloading...")
    with tqdm(total=file_size, unit="B", unit_scale=True) as pbar:
        with open(save_path, "wb") as file:
            while True:
                buffer = response.read(1024)
                if not buffer:
                    break
                file.write(buffer)
                pbar.update(len(buffer))

    # 显示下载时间
    print("Download complete!")
    print(f"Time cost: {time.perf_counter():.2f}s")

这个函数的实现过程比较简单:

  • 发送请求获取文件的大小
  • 使用tqdm库创建进度条并下载文件
  • 使用time库记录下载时间并输出

我们可以使用这个函数来下载一张图片。

url = "https://upload.wikimedia.org/wikipedia/commons/0/05/Personality_factors.png"
save_path = "personality_factors.png"
download_file_with_progressbar(url, save_path)

下载完成后,控制台会输出下载进度条和下载时间:

Downloading...
100%|██████████| 422k/422k [00:03<00:00, 105kB/s]
Download complete!
Time cost: 4.03s
  1. 使用requests库下载文件并显示进度条和下载时间

我们可以使用requests库来下载文件,它的API会比urllib库更为简单。

首先,我们需要导入必要的库:requests、tqdm、time。

import requests
from tqdm import tqdm
import time

然后,我们定义一个函数来下载文件。这个函数需要传入两个参数:文件的url和保存路径。

def download_file_with_progressbar(url, save_path):
    # 发送请求
    response = requests.get(url, stream=True)
    file_size = int(response.headers.get("Content-Length", 0))

    # 下载文件并显示进度条
    print("Downloading...")
    with tqdm(total=file_size, unit="B", unit_scale=True) as pbar:
        with open(save_path, "wb") as file:
            for chunk in response.iter_content(1024):
                file.write(chunk)
                pbar.update(len(chunk))

    # 显示下载时间
    print("Download complete!")
    print(f"Time cost: {time.perf_counter():.2f}s")

这个函数的实现过程也比较简单:

  • 发送请求获取文件的大小
  • 使用tqdm库创建进度条并下载文件
  • 使用time库记录下载时间并输出

我们可以使用这个函数来下载一张图片。

url = "https://upload.wikimedia.org/wikipedia/commons/0/05/Personality_factors.png"
save_path = "personality_factors.png"
download_file_with_progressbar(url, save_path)

下载完成后,控制台会输出下载进度条和下载时间:

Downloading...
100%|██████████| 422k/422k [00:03<00:00, 105kB/s]
Download complete!
Time cost: 4.03s

至此,我们已经成功实现了 Python 给下载文件显示进度条和下载时间的实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 给下载文件显示进度条和下载时间的实现 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 用NumPy在Python中用浮点阵列生成Legendre多项式的Vandermonde矩阵

    生成Legendre多项式的Vandermonde矩阵是一种通用的线性代数计算需求,NumPy可以方便地实现。以下是详细的操作步骤: 导入NumPy库 import numpy as np 创建x坐标点 x = np.array([-1, -0.5, 0, 0.5, 1]) 将x坐标点转化为Vandermonde矩阵 V = np.vander(x, inc…

    python-answer 2023年3月25日
    00
  • python中sample函数的介绍与使用

    Python中sample函数的介绍与使用 random模块中的sample()函数用于从一个序列中随机选择指定长度的元素并返回一个新的列表对象。 语法 sample()函数的语法如下: random.sample(sequence, k) 其中,sequence为需要进行抽样的序列,k表示需要抽取的元素个数。 示例说明 示例1:抽取列表中的元素 例如,有一…

    python 2023年5月14日
    00
  • 如何进行Python中的字符串操作?

    下面是Python中字符串操作的完整攻略: 字符串的定义 Python中字符串是由一系列字符组成的,可以使用单引号、双引号或三引号来定义。其中,单引号和双引号的作用是完全相同的。而三引号被用来表示多行字符串或docstring(文档字符串,用于函数或模块的文档注释)。 示例: s1 = ‘Hello, World!’ s2 = "Python is…

    python 2023年4月19日
    00
  • 用代码帮你了解Python基础(1)

    当谈论编程语言时,Python是一个非常流行的选择,因为它易于学习且功能强大。在这篇文章中,我们将从头开始了解Python基础知识,帮助你编写一些简单的程序。 安装Python 在开始之前,你需要在你的电脑上安装Python。你可以在官方网站 (https://www.python.org/downloads/) 上下载适合你的操作系统的Python版本。下…

    python 2023年5月30日
    00
  • Python内建类型str源码学习

    下面我会详细讲解Python内建类型str源码学习的完整攻略。 标题一:Python内建类型str源码学习 学习目标 学习Python内建类型str的源码,并了解其实现原理和方法。 学习过程 了解str类型的定义和特点 str代表了字符串数据类型,在Python中是一个内建类型。其特点是不可变,意味着一旦创建字符串,就无法通过赋值改变其内部字符。 查看str…

    python 2023年5月20日
    00
  • Python+Tkinter制作专属图形化界面

    让我们开始讲解“Python+Tkinter制作专属图形化界面”的完整攻略。 1. Tkinter组件介绍 Tkinter 是 Python 自带的 GUI 库,可以方便地创建简单的窗口应用程序。在使用这个库前,需要导入它的模块。 导入模块语句:import tkinter as tk Tkinter 中一些常用的组件如下: 标签(Label):用于显示文本…

    python 2023年6月13日
    00
  • 利用Python解决Excel问题的最佳方案总结

    当下,Excel已经成为了各个领域中数据处理任务必不可少的工具之一,而Python则因其便捷实用的编程特性,在Excel处理中也受到越来越多人的关注。下面将详细讲解一下如何利用Python处理Excel文件的最佳实践。 1. 读取Excel数据 想要在Python中读取Excel数据,可以使用官方提供的包——openpyxl。以下是读取Excel表格中数据的…

    python 2023年5月13日
    00
  • Python函数式编程指南(二):从函数开始

    关于《Python函数式编程指南(二):从函数开始》的完整攻略,我这里来作一下详细的讲解。 一、前言 本篇攻略是该系列文章的第二篇,主要介绍如何使用 Python 实现函数式编程。本篇攻略需要大家对 Python 语言和基本的编程语言思维有一定的了解和掌握。 二、函数式编程 函数式编程(Functional Programming,简称 FP)是一种编程范式…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部