- import sys,time
- #导入模块
- for i in range(50):
- #进度条的长度
- sys.stdout.write("#")
- #进度条的内容, 这里要注意了, pycharm 有可能不显示 write 的方法
- sys.stdout.flush()
- #刷新缓存
- time.sleep(0.5)
- #间隔时间, 和 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('\n------------------ % Progress -------------------1\n')
- self.f.write('1 2 3 4 5 6 7 8 9 0\n')
- self.f.write('----0----0----0----0----0----0----0----0----0----0\n')
- 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("\n")
- 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 + '%' + '\r' #带输出的字符串,'\r'表示不换行回到最左边
- 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()
来源: http://www.bubuko.com/infodetail-2630034.html