Python的進度條的製作

來源:互聯網
上載者:User

標籤:back   close   label   ogr   gre   列印   else   progress   製作   

 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(‘\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, timeclass 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 = 0if __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()

 

Python的進度條的製作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.