zoukankan      html  css  js  c++  java
  • Python的进度条的制作

     1 import sys,time
     2 #导入模块
     3 
     4 for i in range(50):
     5 #进度条的长度
     6     sys.stdout.write("#")
     7 #进度条的内容,这里要注意了,pycharm有可能不显示write的方法
     8     sys.stdout.flush()
     9 #刷新缓存
    10     time.sleep(0.5)
    11 #间隔时间,和shell的sleep差不多吧

     或者

    import sys
     
    class progressbar(object):
     
        def __init__(self, finalcount, block_char='.'):
            self.finalcount = finalcount
            self.blockcount = 0
            self.block = block_char
            self.f = sys.stdout
            if not self.finalcount:
                return
            self.f.write('
    ------------------ % Progress -------------------1
    ')
            self.f.write('  1  2  3  4  5  6  7  8  9  0
    ')
            self.f.write('----0----0----0----0----0----0----0----0----0----0
    ')
     
        def progress(self, count):
            count = min(count, self.finalcount)
            if self.finalcount:
                percentcomplete = int(round(100.0 * count / self.finalcount))
                if percentcomplete < 1:
                    percentcomplete = 1
            else:
                percentcomplete = 100
            blockcount = int(percentcomplete // 2)
            if blockcount <= self.blockcount:
                return
            for i in range(self.blockcount, blockcount):
                self.f.write(self.block)
            self.f.flush()
            self.blockcount = blockcount
            if percentcomplete == 100:
                self.f.write("
    ")
     
    if __name__ == "__main__":
        from time import sleep
        pb = progressbar(8, "*")
        for count in range(1, 9):
            pb.progress(count)
            sleep(0.2)
        pb = progressbar(100)
        pb.progress(20)
        sleep(0.3)
        pb.progress(47)
        sleep(0.3)
        pb.progress(90)
        sleep(0.3)
        pb.progress(100)
        print "testing 1:"
        pb = progressbar(1)
        pb.progress(1)

     或者:

    # -*- coding: UTF-8 -*-
    
    import sys, time
    
    class ShowProcess():
        """
        显示处理进度的类
        调用该类相关函数即可实现处理进度的显示
        """
        i = 0 # 当前的处理进度
        max_steps = 0 # 总共需要处理的次数
        max_arrow = 50 #进度条的长度
    
        # 初始化函数,需要知道总共的处理次数
        def __init__(self, max_steps):
            self.max_steps = max_steps
            self.i = 0
    
        # 显示函数,根据当前的处理进度i显示进度
        # 效果为[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
        def show_process(self, i=None):
            if i is not None:
                self.i = i
            else:
                self.i += 1
            num_arrow = int(self.i * self.max_arrow / self.max_steps) #计算显示多少个'>'
            num_line = self.max_arrow - num_arrow #计算显示多少个'-'
            percent = self.i * 100.0 / self.max_steps #计算完成进度,格式为xx.xx%
            process_bar = '[' + '>' * num_arrow + '-' * num_line + ']'
                          + '%.2f' % percent + '%' + '
    ' #带输出的字符串,'
    '表示不换行回到最左边
            sys.stdout.write(process_bar) #这两句打印字符到终端
            sys.stdout.flush()
    
        def close(self, words='done'):
            print ''
            print words
            self.i = 0
    
    if __name__=='__main__':
        max_steps = 100
    
        process_bar = ShowProcess(max_steps)
    
        for i in range(max_steps + 1):
            process_bar.show_process()
            time.sleep(0.05)
        process_bar.close()

     或者:

    from Tkinter import *
    
    def resize(ev=None):
        label.config(font='Helvetica -%d bold' % scale.get())
    
    top = Tk()
    top.geometry()
    
    label = Label(top, text = 'hello world!', font = 'Helvetica -12 bold')
    label.pack(fill=Y,expand=1)
    
    scale = Scale(top, from_=10, to=40, orient=HORIZONTAL, command=resize)
    scale.set(12)
    scale.pack(fill=X, expand=1)
    
    
    quit = Button(top, text="QUIT", command=top.quit, activeforeground='white', activebackground='red')
    quit.pack()
    
    mainloop()
  • 相关阅读:
    aptana中删除空行
    css预处理的引入与问题
    rsyslog 服务器重启后 发现不能接受到外部日志 只能接受本地日志 关闭防火墙即可
    php访问其他网站接口
    mysql 表查询结果 总行数计算
    linux centos 恢复 还原 备份 Snapper 快照说明
    linux 服务 启动 关闭 列表
    linux yum 安装 卸载
    php7 mysql_pconnect() 缺失 解决方法
    搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
  • 原文地址:https://www.cnblogs.com/navysummer/p/9131738.html
Copyright © 2011-2022 走看看