用 Python 给程序加个进度条,让你的程序看起来更炫酷

你好,我是天作。

最近,我真的好丧。一些有截止日期的事情,都是拖到Deadline的前一天才草草了事;对于那些没有截至日期的事情,更是仅仅存在脑子里,徒增了焦虑,却迟迟没有动手。

不幸中的万幸,我渐渐地培养了读书的习惯。

为了克服自己拖延的症状,我读了一些习惯养成的书籍,而这些书基本上都提到了这样一个思路。

这个思路就是:“拆”。

把大的事情“拆”成一件件小的事情,把困难的事情“拆”成一件件容易的事情。

比如,我想去跑步。那我就可以把跑步“拆”分成以下几个步骤:

1)换上准备运动的装备(运动裤、运动鞋)

2)走到运动的地方(告诉自己就是出去散散步)

3)先跑5分钟(告诉自己就跑5分钟)

4)慢慢的继续下去

在没有“拆”之前,事情只有两个状态“完成”和“未完成”,这样只有在进度完成100%的时候才可以看到结果;

事情被“拆”分之后,就转化为一件件可以做到的具体事情;

我们每完成一小部分,就会有一种掌控全局的感觉,也更容易促进整个进度条的完成。

运行的程序也是如此,没有可视化进度,我们只能苦苦等待最终的完成,这样确实容易人焦躁不安。

有了进度条,我们就可以时时掌握程序运行的进度,可以让人心里踏实。

那么,怎么用 Python 给程序加个进度条呢?

可以采用以下五种方式:

1、使用time模块,结合python的基础语法(循环、条件判断、字符串格式化)设计进度条

import time

for i in range(0, 101, 2):
  time.sleep(0.1)
  num = i // 2
  if i == 100:
    # 字符串格式化
    # %3s——右对齐,占位符3位  %有特殊含义:想要打印%,使用%%表示
    # %-50s——左对齐,占位符50位
    # \r 回车  \n 换行
    process = "\r[%3s%%]: |%-50s|\n" % (i, '|' * num)
  else:
    process = "\r[%3s%%]: |%-50s|" % (i, '|' * num)
  print(process, end='', flush=True)

运行效果:

2、使用time模块和sys模块

sys.stdout.flush():立即刷新输出的内容 

sys.stdout.write():打印不换行

print()方法:打印换行

import sys, time

print("正在下载......")
for i in range(11):
    if i != 10:
        sys.stdout.write("==")
    else:
        sys.stdout.write("== " + str(i * 10) + "%/100%")
    sys.stdout.flush()
    time.sleep(0.2)
print("\n" + "下载完成")

运行效果:

3、tqdm扩展库

tqdm第三方模块(可使用pip进行安装)可以实时输出处理进度,占用的CPU资源非常少;

支持windows、Linux、mac等系统,支持循环处理、多进程、递归处理;

还可以结合linux的命令来查看处理情况,等进度展示。

from time import sleep
from tqdm import tqdm

for i in tqdm(range(20)):
    sleep(0.5)

运行效果:

4、Progressbar 扩展库 

Python Progressbar模块(pip安装)提供基于文本的可视化进度条,通常用在显示下载进度、显示任务的执行进度等等。

import time
from progressbar import *

progress = ProgressBar()
for i in progress(range(1000)):
    time.sleep(0.01)

运行效果:

5、alive-progress 扩展库

alive-progress扩展库(pip安装)是一种具有动态效果的智能进度条

from alive_progress import alive_bar
import time
items = range(10)         # retrieve your set of items
with alive_bar(len(items)) as bar:  # declare your expected total
  for item in items:        # iterate as usual
    # process each item
    bar()            # call after consuming one item
    time.sleep(1)

运行效果:

总结

程序中的进度条可以让程序更炫酷,可以显示下载进度、显示任务的执行进度;

生活中的进度条可以让我们对整个目标的重要步骤有清晰地界定,减少对未知的恐惧。一切都会好起来的吧。

后台回复 进度条 获取源码,如果觉得文章不错,点点右下角的 “在看” 呗!

-END-


猜你喜欢



1、Python两行代码剪藏网页为 PDF

2、Python快速卡通化人物头像

3、有一分热,发一分光


@天作之程
你好起来,身边的一切都会好起来

  在看”  我吗?

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值