最近总是需要造大量的数据,用 python 操作,非常方便,可以参考 pyodbc 这个东东。
数据量比较大的时候,等待是一种痛苦的事,所以做了个简易的进度条,在命令行中输出当前的进度。
效果类似这样:
ABCDEFGHIJKLMNOPQRSTUVWXYZ.csv (1000) 100%
代码如下:
import sys
import time
def print_progress(msg, progress):
sys.stdout.write('%-71s%3d%%\r' % (msg, progress))
sys.stdout.flush()
if progress >= 100:
sys.stdout.write('\n')
if __name__ == '__main__':
max = 1000
for i in range(max + 1):
progress = i * 1.0 / max * 100
print_progress('ABCDEFGHIJKLMNOPQRSTUVWXYZ.csv (%d)' % i, progress)
time.sleep(0.01)
进度条的关键在于,\r
Carriage return,它可以把光标从移至本行的行首,而不会产生新行。
其实 python 已经有了非常棒的 text progressbar,可以非常方便定制进度条的外观及动态效果,鉴于这里只是非常简单的应用,没有必要额外再引入别的库了,一切从简。