在处理大量数的时候, 如果输出类似 "process i out of n files..." 这样的内容来指示进度的话, 虽然可以显示目前的进度(用来安慰等待的心情...)但有个问题是, 如果输出了太多行(比如一万行...), 就看不到前面的内容了...
所以想找一个命令行下面的进度条, 其实python已经有了(不止一个)进度条的包了, 比如progressbar, 但是不知为什么这个包在windows下面没有能做到刷新显示 -- 就是刷新进度的时候, 没有把原先那一行去掉, 而是在下面再输出了一行... (不过后来在linux下面使用这个包是没问题的, 好奇怪...)
所以想办法自己写了一个, 发现要实现一个简单的进度条还是很简单的, 关键就是使用\r
, 这样会把光标移动到当前行的开头: 这样下次输出的时候就会把原先的内容冲掉了.
代码只有不到二十行:
import sys
class SimpleProgressBar():
def __init__(self, width=50):
self.last_x = -1
self.width = width
def ...