加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Python3 实现进度条

发布时间:2021-05-21 04:55:31 所属栏目:大数据 来源: https://blog.csdn.net/yilovex
导读:要实现进度条,首先要先搞清楚进度条的原理是什么 本质上,进度条就是在 print 输出的时候没有换行,一直在固定的位置刷新输出的值,那这是怎么做到的呢? 这就涉及到文本系统的控制符了 r: ? 将光标移动到当前行的首位而不换行 n: ? 将光标移动到下一行

要实现进度条,首先要先搞清楚进度条的原理是什么

本质上,进度条就是在 print 输出的时候没有换行,一直在固定的位置刷新输出的值,那这是怎么做到的呢?

这就涉及到文本系统的控制符了

  • r: ? 将光标移动到当前行的首位而不换行
  • n: ? 将光标移动到下一行,并不移动到首位
  • rn: 将光标移动到下一行首位

彻底搞清楚了上面的控制符,进度条也就完成一半了,接下来就是实际的编码了,下面实现了 n 中进度条的样式

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import time


def progress_bar(num):

    j = "#"; k = "="; t = "|/-"; #s = " " * (num + 1)

    for i in range(0,num + 1):

        j += "#"; k += "="; s = ("=" * i) + (" " * (num - i))
        
        #print(int(i/num*100),end='%r')
        #print('%.2f' % (i/num*100),end='%r')
        #print('%.2f' % (i*100/num),end='%r')
        #print('complete percent:',time.strftime("%Y-%m-%d %H:%M:%S",
        #        time.localtime()),int((i/num)*100),end='%r')
        #print(str(int(i/num*100)) + '% ' + j + '->',end='r')
        #print(k + ">" + str(int(i/num*100)),end='%r')
        #print("[%s]" % t[i%4],end='r')
        #print("[%s][%s][%.2f" % (t[i%4],k,(i/num*100)),"%]",end='r')
        print("[%s][%s][%.2f" % (t[i%4],s,end='r')

        time.sleep(0.1)

    print()

progress_bar(32)


'''
# 除了自己实现以外,Python 还提供了Tqdm 模块
# Tqdm 是一个快速、扩展性强的进度条工具库,它提供了非常多的接口,有兴趣的小伙伴可以了解一下
# GitHub 地址是:https://github.com/tqdm/tqdm
# 我们来看下,如何使用 Tqdm 模块来实现进度条
# 首先是安装:pip install tqdm
'''
#from tqdm import tqdm
#for i in tqdm(range(1,500)):
#    sleep(0.01)

运行结果:



参考文章:https://www.cnblogs.com/jsben/p/5792952.html

https://blog.csdn.net/u013832707/article/details/73608504

https://blog.csdn.net/yuehailin/article/details/53999288

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读