Python 实现进度条的六种方式

yizhihongxing

Python 实现进度条的六种方式

在 Python 编程中,经常需要在程序执行某些耗时操作时实时显示进度条,以提升用户体验和程序可读性。

本篇攻略将介绍 Python 实现进度条的常用技巧,其中会涉及到六种方式,包括:

  1. 在命令行窗口打印简单进度条
  2. 在命令行窗口使用第三方库给进度条增加颜色、样式等
  3. 使用 tqdm 库在控制台中实现进度条
  4. 使用 progressbar2 库实现进度条
  5. 使用 alive_progress 库实现进度条
  6. 在 Python GUI 应用程序中使用 progressbar 组件实现进度条

下面将逐一介绍这些方法。

1. 在命令行窗口打印简单进度条

在 Python 编程中,我们最简单的实现进度条的方式就是在命令行窗口中打印一个简单的字符串。

import time

def progress_bar():
    for i in range(101):
        print(f'\rProgress: {"#" * i}{"." * (100 - i)} {i}%', end='')
        time.sleep(0.1)

if __name__ == '__main__':
    progress_bar()

在上述实现中,我们通过在 print 中使用不断变化的字符串,模拟了进度条的效果。每次循环结束后,我们使用了 \r 回车符,将光标返回到行首,从而使得每次输出都在同一行上,形成进度条的效果。

2. 在命令行窗口使用第三方库给进度条增加颜色、样式等

Python 自带的字符串格式化方法有限,如果想让进度条样式更加漂亮,就需要使用第三方库,比如 colorama 库。

from colorama import init, Fore, Back, Style
import time

def colored_progress_bar():
    init(autoreset=True)
    for i in range(101):
        percentage = Fore.GREEN + f'{i}%' + Fore.RESET
        filled_length = int(i // 2)
        bar = Back.WHITE + Fore.BLUE + '#' * filled_length + Fore.RESET + Back.RESET + '.' * (50 - filled_length)
        print(f'\r{bar} {percentage}', end='')
        time.sleep(0.1)

if __name__ == '__main__':
    colored_progress_bar()

上述实现中,我们使用了 colorama 库来增加对文字和背景的样式控制,从而让进度条变得更加好看。

3. 使用 tqdm 库在控制台中实现进度条

相比于手动输出字符串,使用第三方库进行实现可以减少很多繁琐的操作。 tqdm 是其中一个非常优秀的实现,不仅支持在控制台中实时显示进度条,同时还支持多线程、多进程等场景。

from tqdm import tqdm
import time

def tqdm_progress_bar():
    for i in tqdm(range(100)):
        time.sleep(0.1)

if __name__ == '__main__':
    tqdm_progress_bar()

在上述实现中,我们只需要将一个可迭代对象传递给 tqdm 函数,就可以在控制台中显示进度条了。

4. 使用 progressbar2 库实现进度条

progressbar2 库也是一个非常好用的进度条实现库,支持在命令行和图形界面中都能够展示进度条。

from progressbar import ProgressBar, Percentage, Timer
import time

def progressbar2_progress_bar():
    widgets = ['Progress: ', Percentage(), ' ', Timer()]
    pbar = ProgressBar(widgets=widgets)
    for i in pbar(range(100)):
        time.sleep(0.1)

if __name__ == '__main__':
    progressbar2_progress_bar()

在上述实现中,我们先定义了要显示的进度条样式,然后将这些信息传递给 ProgressBar 对象。

5. 使用 alive_progress 库实现进度条

alive_progress 库是一个轻量级的进度条实现库,支持在控制台中实时显示进度条。

from alive_progress import alive_bar
import time

def alive_progress_bar():
    with alive_bar(100) as bar:
        for i in range(100):
            bar()
            time.sleep(0.1)

if __name__ == '__main__':
    alive_progress_bar()

在上述实现中,我们使用 alive_bar 上下文管理器,循环结束自动关闭进度条。

6. 在 Python GUI 应用程序中使用 progressbar 组件实现进度条

除了在命令行中使用进度条外,还可以在 Python GUI 应用程序中使用 progressbar 组件,实现用户友好的进度条体验。

import tkinter as tk
import time
from tkinter import ttk

def gui_progress_bar():
    root = tk.Tk()
    root.title('进度条示例')

    progressbar = ttk.Progressbar(root, orient='horizontal', length=400, mode='determinate')
    progressbar.pack(pady=20)

    root.update()

    for i in range(101):
        progressbar['value'] = i
        root.update()
        time.sleep(0.1)

    root.destroy()

if __name__ == '__main__':
    gui_progress_bar()

上述代码中,我们使用 tkinter 模块创建了一个简单的 GUI 应用程序,通过创建一个 Progressbar 对象,然后不断修改 progressbar['value'] 的值,从而实现了进度条效果。

至此,我们介绍了 Python 实现进度条的六种方式。使用这些方法,我们可以大大提高编程效率,优化用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 实现进度条的六种方式 - Python技术站

(2)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Python3 元组tuple入门基础

    Python3元组tuple入门基础 在Python中,元组(tuple)是一个有序且不可变的序列。这意味着一旦定义,元组中的元素就不可以更改。 创建元组 元组的创建方式相对简单,只需要用小括号将元素括起来即可。例如: mytuple = (1, 2, 3) print(mytuple) # 输出 (1, 2, 3) 需要注意,在定义只有一个元素的元组时,必…

    python 2023年5月14日
    00
  • Python global全局变量函数详解

    Python global全局变量函数详解 在Python中,定义一个函数时,我们可以使用global关键字来声明一个全局变量。本文将详细介绍如何使用global来定义全局变量以及注意事项。 global语法 global语法的格式如下: global var_name 其中,var_name为想要声明为全局变量的变量名。 global的作用 使用globa…

    python 2023年5月19日
    00
  • Python3使用PySynth制作音乐的方法

    Python3使用PySynth制作音乐的方法 概述 PySynth是一个使用Python3编写的音乐合成器。它支持多种合成语音和音色,并可以生成中止音乐。本文将介绍如何使用PySynth制作音乐。 安装 安装PySynth非常简单。只需使用pip3命令在终端中输入以下命令即可安装: pip3 install PySynth 基础用法 PySynth提供了一…

    python 2023年6月3日
    00
  • 简单了解Python中的几种函数

    简单了解Python中的几种函数 在Python中,函数是一个非常重要的概念,是实现代码复用的重要手段。Python中的函数有很多种类型,包括普通函数、匿名函数、高阶函数等等。本文将简单介绍Python中的几种常见函数类型,并给出相应的代码示例。 普通函数 普通函数是Python中最常见的函数类型,定义格式如下: def function_name(argu…

    python 2023年6月5日
    00
  • Python Requests 基础入门

    PythonRequests基础入门 PythonRequests是一个Python库,用于发送HTTP请求。它提供了简单易用的API,可以轻松地发送GET、POST、PUT、DELETE等HTTP请求,并处理响应结果。本文将介绍PythonRequests的基础知识和用法。 实现步骤 步骤一:安装PythonRequests库 在Python中,我们可以使…

    python 2023年5月15日
    00
  • python抖音表白程序源代码

    下面我来为您详细讲解“python抖音表白程序源代码”的完整攻略。 确认环境与安装必要依赖库 要使用抖音表白程序,我们需要确认以下两个前提条件: 安装Python环境,可前往Python官网下载安装:https://www.python.org/downloads/ 安装必要的依赖库,分别是requests与hashlib,可以在命令行中使用以下命令进行安装…

    python 2023年5月31日
    00
  • python的open函数常见用法

    当我们需要在Python程序中进行文件的读写操作时,可以使用Python内置的open函数。open函数是Python中的一个重要函数,它用于打开文件、读取文件、写入文件、关闭文件等操作,是Python中文件操作常用的函数之一。 基本语法 open函数的基本语法为: file = open(filename, mode) 其中,filename是要打开的文件…

    python 2023年5月13日
    00
  • Python Asyncio 库之同步原语常用函数详解

    Python Asyncio 库之同步原语常用函数详解 1. 异步编程的原理 异步编程是一种非阻塞式的编程方式,它的核心思想就是使用异步函数来代替同步函数,将所有的 I/O 操作交给底层的 I/O 系统处理,以此来提高程序的执行效率和并发性。 Python 中的异步编程由 asyncio 库来实现,它提供了一套完整的异步编程框架,你可以使用它来编写高效的异步…

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