這篇文章主要介紹了Python進度條的制作代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
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=one): 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()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。