百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

给平淡的Python脚本加个进度条(python编写进度条)

off999 2024-09-14 07:15 21 浏览 0 评论

每次编写爬虫程序都伴随着一个烦恼:不知道已经爬取了多少数据、剩余多少数据待爬取,以及需要多长时间完成。突发奇想:给程序添加一个进度条,这样一切问题都迎刃而解!

方案一:使用tqdm库 给程序添加进度条

tqdm是一个Python库,用于在循环中添加进度条,以可视化地显示迭代过程的进度。它提供了简单而灵活的方式来监视循环的执行,并在终端中实时显示进度条、估计剩余时间等信息。

以下是tqdm库的一些特点和常用功能:

  1. 简单易用:只需在循环中使用tqdm函数包装迭代对象即可快速添加进度条。
  2. 自动估计:tqdm根据已完成的迭代次数和已消耗的时间来估计剩余时间,并显示在进度条中。
  3. 多样化的样式:tqdm提供多种样式和选项,可以自定义进度条的外观和行为,如进度条长度、动画效果、显示格式等。
  4. 支持多种迭代对象:不仅可以用于常规的for循环,还可以应用于while循环、列表解析等各种迭代场景。
  5. 嵌套进度条:tqdm支持在嵌套循环中使用多个进度条,以便同时追踪多个任务的进度。
  6. 兼容性:tqdm与大多数Python环境和第三方库兼容,并且可以方便地与其他库(如numpy、pandas等)结合使用。

要安装tqdm库,可以使用以下命令:

pip install tqdm

以下是一个简单的示例,演示了如何使用tqdm库来添加进度条:

from tqdm import tqdm
import time
# 使用tqdm包装迭代对象
for i in tqdm(range(10)):
# 模拟任务执行
time.sleep(0.1)

在这个例子中,我们使用tqdm函数包装了一个range(10)的迭代对象。在循环中,每次迭代都会更新并显示进度条,包括已完成的百分比、已消耗的时间、估计的剩余时间等信息。

tqdm库是一个非常有用的工具,可以帮助您在编写Python程序时轻松地添加进度条,提供更好的用户体验和可视化效果。无论是处理大量数据、执行耗时任务还是进行迭代计算,tqdm都是一个方便而强大的选择。

下面是tqdm的效果展示:

有点丑,但是基本想要的效果都达到了,接下来尝试给进度条加点颜色。

给进度条加颜色就用到了 coloram库,colorama是一个用于在终端中添加彩色文本和样式的Python库。它提供了跨平台的功能,使您能够在Windows、Linux和Mac等操作系统上创建具有颜色和样式的终端输出。代码如下:

pip install colorama

from tqdm import tqdm
import time
from colorama import Fore, Style




data = range(100)
for item in tqdm(data, bar_format='{l_bar}%s{bar}%s{r_bar}' % (Fore.LIGHTCYAN_EX, Style.RESET_ALL)):
# 在这里执行你的循环操作
# 每次迭代时,tqdm会自动更新进度条
# 这里只是一个示例,你可以根据实际情况进行修改
time.sleep(0.1)
# 模拟处理耗时操作

colorama 库中的 Fore 用来修改进度条的颜色,Style 用来修改进度条的样式。

进度条是有了,但感觉还不够酷!差了点意思。

方案二:使用rich库添加进度条

rich是一个Python库,提供了丰富的文本渲染工具,可以在终端中创建精美的、可定制的文本界面。它支持各种样式、颜色、布局和图表等功能,使终端输出更具视觉效果和交互性。

以下是rich库的一些特点和常用功能:

  1. 文本样式和颜色:rich提供了丰富的文本样式和颜色选项,如粗体、斜体、下划线、前景色、背景色等,可以创建具有吸引力和可读性的文本效果。
  2. 表格和布局:rich可以创建美观的表格,并支持自动调整列宽、合并单元格、排序等功能。此外,它还提供了灵活的布局选项,可以在终端中创建复杂的文本布局。
  3. 进度条和动画:rich内置了多种类型的进度条和动画效果,可以用于显示任务的进度和状态,使长时间运行的任务更加可视化。
  4. 图表绘制:rich支持绘制各种图表,如柱状图、线图、饼图等,可以用于数据可视化和报告生成。
  5. 代码高亮:rich可以对Python代码进行语法高亮,并以可定制的样式在终端中显示。

以下是一个示例,展示如何使用rich库添加进度条:

import timefrom rich.progress import track
for step in track(range(100)): time.sleep(1)

在这个例子中,我们首先创建了一个Progress对象来管理进度条。然后,使用add_task方法添加一个任务,并指定任务的总数。在循环中,通过progress.update方法更新任务的进度,并使用advance参数指定进度增量。最后,使用remove_task方法完成任务并移除进度条。

rich库的使用不仅限于进度条,它还提供了许多其他功能来改善终端输出的可视化效果。您可以根据需要使用其丰富的功能和选项来创建漂亮的终端界面。

要安装rich库,可以使用以下命令:

pip install rich

综上所述,rich库是一个功能强大的工具,可用于在终端中创建精美的、可定制的文本界面,并且可以轻松添加进度条和其他视觉效果。

下面是rich库进度条的效果:

接下来可以给进度条加点特效,比如emoji表情:

实现代码如下:

import timefrom rich.progress import Progressfrom rich.progress import ( BarColumn, DownloadColumn, Progress, SpinnerColumn, TaskProgressColumn, TimeElapsedColumn, TimeRemainingColumn,)

test_data = [1,2,3,4,5,6,7,8,9,10]with Progress(SpinnerColumn(spinner_name='moon', speed=0.2),'{task.description}',BarColumn(),DownloadColumn(),TaskProgressColumn(), TimeElapsedColumn(),TimeRemainingColumn(),) as progress: track = progress.add_task(total=len(test_data), description='loading') progress.update(track, advance=0) # 初始化进度条 for i in test_data: progress.update(track, advance=1,description='loading') time.sleep(1)
progress.stop()

如果想要添加猴子捂脸的表情就只需要在代码中将的moon修改为monkey就好啦!

效果如下:

相关推荐

Python 数据分析——利用Pandas进行分组统计

话说天下大势,分久必合,合久必分。数据分析也是如此,我们经常要对数据进行分组与聚合,以对不同组的数据进行深入解读。本章将介绍如何利用Pandas中的GroupBy操作函数来完成数据的分组、聚合以及统计...

python数据分析:介绍pandas库的数据类型Series和DataFrame

安装pandaspipinstallpandas-ihttps://mirrors.aliyun.com/pypi/simple/使用pandas直接导入即可importpandasas...

使用DataFrame计算两列的总和和最大值_[python]

【如果对您有用,请关注并转发,谢谢~~】最近在处理气象类相关数据的空间计算,在做综合性计算的时候,DataFrame针对每列的统计求和、最大值等较为方便,对某行的两列或多列数据进行求和与最大值等的简便...

8-Python内置函数

Python提供了丰富的内置函数,这些函数可以直接使用而无需导入任何模块。以下是一些常用的内置函数及其示例:1-print()1-1-说明输出指定的信息到控制台。1-2-例子2-len()2-1-说...

Python中函数式编程函数: reduce()函数

Python中的reduce()函数是一个强大的工具,它通过连续地将指定的函数应用于序列(如列表)来对序列(如列表)执行累积操作。它是functools模块的一部分,这意味着您需要在使用它之...

万万没想到,除了香农计划,Python3.11竟还有这么多性能提升

众所周知,Python3.11版本带来了较大的性能提升,但是,它具体在哪些方面上得到了优化呢?除了著名的“香农计划”外,它还包含哪些与性能相关的优化呢?本文将带你一探究竟!作者:BeshrKay...

最全python3.11版12类75个内置函数大全

获取全部内置函数:importbuiltins#导入模块yc=[]#异常属性nc=[]#不可调用fn=[]#内置函数defll(ty=builtins):...

软件测试笔试题

测试工程师岗位,3-5年,10-14k1.我司有一款产品,类似TeamViewer,向日葵,mstsc,QQ远程控制产品,一个PC客户端产品,请设想一下测试要点。并写出2.写出常用的SQL语句8条,l...

备战各大互联网巨头公司招聘会,最全Python面试大全,共300题

前言众所周知,越是顶尖的互联网公司在面试这一part的要求就越高,需要你有很好的技术功底、项目经验、一份漂亮的简历,当然还有避免不了的笔试过关。对于Python的工程师来说,全面掌握好有关Python...

经典 SQL 数据库笔试题及答案整理

马上又是金三银四啦,有蛮多小伙伴在跳槽找工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大题,今天这篇文章呢,就收录了下最近学员反馈上来的一些数据库笔...

用Python开发日常小软件,让生活与工作更高效!附实例代码

引言:Python如何让生活更轻松?在数字化时代,编程早已不是程序员的专属技能。Python凭借其简洁易学的特点,成为普通人提升效率、解决日常问题的得力工具。无论是自动化重复任务、处理数据,还是开发个...

太牛了!102个Python实战项目被我扒到了!建议收藏!

挖到宝了!整整102个Python实战项目合集,从基础语法到高阶应用全覆盖,附完整源码+数据集,手把手带你从代码小白变身实战大神!这波羊毛不薅真的亏到哭!超全项目库,学练一站式搞定这份资...

Python中的并发编程

1.Python对并发编程的支持多线程:threading,利用CPU和IO可以同时执行的原理,让CPU不会干巴巴等待IO完成。多进程:multiprocessing,利用多核CPU...

Python 也有内存泄漏?

1.背景前段时间接手了一个边缘视觉识别的项目,大功能已经开发的差不多了,主要是需要是优化一些性能问题。其中比较突出的内存泄漏的问题,而且不止一处,有些比较有代表性,可以总结一下。为了更好地可视化内存...

python爬虫之多线程threading、多进程、协程aiohttp批量下载图片

一、单线程常规下载常规单线程执行脚本爬取壁纸图片,只爬取一页的图片。importdatetimeimportreimportrequestsfrombs4importBeautifu...

取消回复欢迎 发表评论: