[Python] 实现文本进度条

目录

简单的开始

进度条是计算机处理任务或执行软件中常用的增强用户体验的重要手段,它能度条功能。今天我们将利用 Python 字符串处理方法实现文本进度条功能。

最简单地,利用 print() 函数实现简单的非刷新文本进度条。基本思想是按照任务执行百分比将整个任务划分为 100 个单位,每执行 N% 输出一次进度条。 每一行输出包含进度百分比,代表已完成的部分(**) 和未完成的部分(…)的两种字符,以及一个跟随完成度前进的小箭头,风格如下:

%10 [* -> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]

由于程序执行速度远超过人眼的视觉停留时间,直接进行字符输出几乎是瞬间完成,不利于观察。为了模拟任务处理的时间效果,调用 Python 标准时间库 time,使用 time sleep()函数将当前程序暂时挂起 t s, t 可以是小数。由此可以接近真实的模拟进度条效果输出。使用 import 保留字调用 time 库。

import time

默认情况, print() 函数在输出结尾处会自动产生一个 ‘\n’, 即换行符,从而让光标自动移动到下一行行首,这样上一步输出依旧保存在界面上。

采用 for 循环和 print() 函数构成程序的主体部分,输出百分比最高(100%)为 3 位数据,为了使输出显得整齐,可以使用 {:^3.0f} 格式化百分比部分。这个简单的文本进度条代码如下。变量 scale 表示输出进度条的精度,我们可以修改这个值观察效果变化。

import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
    a = '**' * i
    b = ' . . ' * (scale - 1)
    c = (i / scale) * 100
    print("%{:^3.0f}[{} -> {}]".format(c,a,b))
    time.sleep(0.1)
print("------执行结束------")

运行结果如下:

[Python] 实现文本进度条

——执行开始——
% 0 [ -> . . . . . . . . . . . . . . . . . . ]
%10 [ -> . . . . . . . . . . . . . . . . . . ]
%20 [
-> . . . . . . . . . . . . . . . . . . ]
%30 [
* -> . . . . . . . . . . . . . . . . . . ]
%40 [
* -> . . . . . . . . . . . . . . . . . . ]
%50 [
* -> . . . . . . . . . . . . . . . . . . ]
%60 [
** -> . . . . . . . . . . . . . . . . . . ]
%70 [
** -> . . . . . . . . . . . . . . . . . . ]
%80 [
*** -> . . . . . . . . . . . . . . . . . . ]
%90 [
** -> . . . . . . . . . . . . . . . . . . ]
%100[
****** -> . . . . . . . . . . . . . . . . . . ]

Original: https://blog.csdn.net/weixin_62511863/article/details/124389274
Author: 程序喵正在路上
Title: [Python] 实现文本进度条

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/670270/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球