對於一些大型的python程式。我們須要在命令列輸出其百分比,顯得更加友好,以免被人誤會程式陷入死迴圈、假死的視窗。
關鍵是利用到不換行的輸出符\r,\r的輸出。將直接覆蓋掉此行的內容。
比方例如以下的程式,是乙個i從0自加的十萬的過程,即使對於如今高效能的cpu也是須要幾秒的時間的,我們要輸出其執行時候的百分比,能夠在引入sys這個包之後。利用到sys.stdout.write輸出。避免原生態的print自帶的\n影響大局。
同一時候要控制百分比的小數字為4。
程式執行的百分比恰好為i當前的值除以值為十萬的total。
#-*-coding:utf-8-*-
import sys;
total=100000
for i in range(0,total):
percent=float(i)*100/float(total)
sys.stdout.write("%.4f"%percent);
sys.stdout.write("%\r");
sys.stdout.flush();
sys.stdout.write("100%!finish!\r");
sys.stdout.flush();
程式執行結果例如以下:
可是,這裡i每自增一次就要求當前的執行的百分比。把原本100000次的浮點運算徒然新增到二十萬次,同一時候要重新整理100000次的螢幕,很不合理,因此對於程式。能夠做例如以下的改進,執行百分比僅保留2位小數,同一時候i每累積100才進行百分比輸出。程式改動之後例如以下:
#-*-coding:utf-8-*-
import sys;
total=100000
for i in range(0,total):
if i%100==0:
percent=float(i)*100/float(total)
sys.stdout.write("%.2f"%percent);
sys.stdout.write("%\r");
sys.stdout.flush();
sys.stdout.write("100%!finish!\r");
sys.stdout.flush();
從求執行百分比的100000次的浮點運算改為100000次的條件運算,同一時候僅要重新整理螢幕1000次,程式的執行耗時將大大降低。
同一時候。這裡值得注意的是,eclipse中的pydev中的控制台,對於\r依舊是處理成換行符,使得輸出變成例如以下的樣子。這裡沒有辦法了!
Python 輸出程式執行的百分比
對於一些大型的python程式,我們需要在命令列輸出其百分比,顯得更加友好,以免被人誤會程式陷入死迴圈 假死的窗體。關鍵是利用到不換行的輸出符 r,r的輸出,將直接覆蓋掉此行的內容。比如如下的程式,是乙個i從0自加的十萬的過程,即使對於現在高效能的cpu也是需要幾秒的時間的,我們要輸出其執行時候的百...
Python 輸出程式執行的百分比
對於一些大型的python程式。我們須要在命令列輸出其百分比,顯得更加友好,以免被人誤會程式陷入死迴圈 假死的視窗。關鍵是利用到不換行的輸出符 r,r的輸出。將直接覆蓋掉此行的內容。比方例如以下的程式,是乙個i從0自加的十萬的過程,即使對於如今高效能的cpu也是須要幾秒的時間的,我們要輸出其執行時候...
python groupby 輸出站總體百分比
你將不得不建立第二個groupby物件,但是你可以以一種更簡單的方式來計算百分比 僅groupby計算state office並將該sales列除以其和即可。複製paul h答案的開頭 from paul h import numpy as np import pandas as pd np.ran...