gpt4 book ai didi

Python在Console下显示文本进度条的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python在Console下显示文本进度条的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

进度条实现原理 。

进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果。 进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条? 实现进度条最简单的办法就是,在输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果.

在用Python处理耗时的任务时,往往希望能够了解到任务当前的处理进度,这个时候需要在任务中不断打印出任务的进度信息。一般我们是这样的:

def process_mission(): """ 任务处理方法 """ # 这里是任务处理过程 print('当前处理到第[%d]项' % count) # 这里是任务处理过程 。

这种方式会在窗口输出一堆类似下面这样的信息:

当前处理到第1项 当前处理到第2项 当前处理到第3项 当前处理到第4项 当前处理到第5项 .... 。

这种信息有可能非常非常的长,也有可能输出的时候非常非常的快,以至于根本就无法看清楚(输出非常快的时候).

这时候,我们期待这样的功能:

[================== ] 25.60% 。

但如果纯粹的使用 print 是无法达到效果的,会变成和前面一样,满屏都是这种杠杠.

如何正确显示进度条呢?

Python提供了一个模块,叫: progressbar ,当使用这个模块之后,你要显示进度的仅需如下:

?
1
2
3
4
5
6
7
8
9
10
import progressbar
# 先定义一个进度条
# http://blog.useasp.net/
pbar = progressbar.ProgressBar(maxval = 100 , \
widgets = [progressbar.Bar( '=' , '[' , ']' ), ' ' , \
progressbar.Percentage()])
for i in xrange ( 100 ):
# 更新进度条
pbar.update(i + 1 )
pbar.finish()

# Ok,到此完结.

是不是很容易就完成进度条的显示?不过遗憾的是,这个python模块并不是默认的,而是需要安装:

pip install progressbar 。

如果没有安装 pip 可以 参考这里 .

对于只要一个简单进度条的人来说,安装个python包似乎有点动静太大,那么,自己动手写一个便是了.

下面是Mitchell自己写的一个类似的进度条,不用安装包,简单易用.

?
1
2
3
4
5
6
7
8
9
10
11
12
# 在使用本方法之前,请先做如下import
# from __future__ import division
# import math
# import sys
# ##blog.useasp.net##
def progressbar(cur, total):
percent = '{:.2%}' . format (cur / total)
sys.stdout.write( '\r' )
sys.stdout.write( "[%-50s] %s" % (
'=' * int (math.floor(cur * 50 / total)),
percent))
sys.stdout.flush()

说明:

cur , total :一个是当前值,一个是总值。 cur 在任务的处理过程中会不断向 total 靠近,直到两者相等,任务结束 。

需要注意的是,这两个可能为整型,因此要引入 division .

在使用的时候,只需要调用 progressbar 即可在控制台输出进度条.

?
1
2
3
4
# 调用方式举例
progressbar( 2 , 100 )
progressbar( 3.9 , 10 )
progressbar( 3283 , 27379 )

到此,我们完成了一个会在控制台动态更新的进度条.

以上所述是小编给大家介绍的Python在Console下显示文本进度条的方法,希望对大家有所帮助.

最后此篇关于Python在Console下显示文本进度条的方法的文章就讲到这里了,如果你想了解更多关于Python在Console下显示文本进度条的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com