2016-11-21 30 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)),