Python 2 & Python 3列印程式執行進度
阿新 • • 發佈:2018-11-25
在跑耗費時間比較長的程式時我們往往需要估計下還需要多長時間,這個時候如果知道了已經完成了多少,就可以很好地幫助我們估計時間。
這段程式碼是基於 python 3 編寫的,像使用 python 2 的同學可以在程式的最上面新增這句話
# -*- coding=utf-8 -*-
from __future__ import print_function
函式的具體程式碼如下
def progress(percent,width=50):
'''進度列印功能
每次的輸入是已經完成總任務的百分之多少
'''
if percent >= 100 :
percent=100
show_str=('[%%-%ds]' %width) %(int(width * percent/100)*"#") #字串拼接的巢狀使用
print('\r%s %d%%' %(show_str,percent),end='')
其中可以看到函式的輸入是已經執行的百分比,下面將介紹一個使用這個方法的完整例子
# -*- coding=utf-8 -*-
from __future__ import print_function
def progress(percent,width=50):
'''進度列印功能
每次的輸入是已經完成總任務的百分之多少
'''
if percent >= 100:
percent=100
show_str=('[%%-%ds]' %width) %(int(width * percent/100)*"#") #字串拼接的巢狀使用
print('\r%s %d%%' %(show_str,percent),end='')
total = 100
count = 0
for i in range(total):
a = i*2
count += 1
progress(100*count/total)
print ('\nfinished!')
執行上面的程式碼會得到如下的輸出
[##################################################] 100% finished!
其中有幾點需要注意,首先是函式的輸入,因為要輸入的是百分比,所以要乘以 100 ,即 progress(100*count/total)
;另外在執行 progress
的過程中最好不要再有其他的 print
操作,因為這樣的話就沒有辦法保證輸出的一個進度條,會得到很多行的進度條(你額外呼叫了 print 多少次,就會有多少行進度條);最後如果你想在執行完 print
操作後再 print
其他的東西,最好在需要列印的前面加上 \n
,否則會直接在進度條後面打印出來。