2016-11-21 29 views
1

我寫了下面的代碼生成一個文本進度條:蟒蛇:打印在同一直線上,覆蓋以前

for ii in range(len(imgPaths)): 
    temp = misc.imread(imgPaths[ii]) 
    imgData[ii,:,:,:] = temp 
    print 100*ii/len(imgPaths), "Percent complete\r", 

的代碼生成的進度如下:

99 Percent complete Percent complete5 Percent complete7 Percent complete10 Percent complete12 Percent complete15 Percent complete17 Percent complete20 Percent complete22 Percent complete24 Percent complete27 Percent complete29 Percent complete32 Percent complete34 Percent complete37 Percent complete40 Percent complete42 Percent complete45 Percent complete48 Percent complete50 Percent complete53 Percent complete56 Percent complete58 Percent complete60 Percent complete62 Percent complete65 Percent complete67 Percent complete69 Percent complete71 Percent complete73 Percent complete76 Percent complete78 Percent complete81 Percent complete82 Percent complete84 Percent complete87 Percent complete90 Percent complete91 Percent complete94 Percent complete96 Percent complete99 Percent complete 

似乎打印在同一個但太冗餘。 有沒有什麼辦法以有效的方式簡化打印結果。 我想要更新的進度覆蓋前一個。

+1

檢查https://docs.python.org/2/howto/curses.html或ANSI轉義序列 – JuniorCompressor

+2

奇怪,回車符應該返回打印光標到行的開始,但它似乎沒有發生你的輸出......你打印到命令行或其他東西?你用什麼IDE,如果有的話? – Kevin

+0

總是有http://click.pocoo.org/5/utils/#showing-progress-bars –

回答

1

試試這個:

print "\r{} Percent complete".format(100*ii/len(imgPaths)),