从 Python 第三方进度条库 tqdm 谈起 (转载)
原文地址: https://blog.ernest.me/post/python-progress-bar tqdm 最近一款新的进度条 tqdm 库比较热门,声称比老版的 python-progressbar 库的单次响应时间提高了 10 倍以上。 Overhead is low -- about 60ns per iteration (80ns with gui=True). By comparison, the well established ProgressBar has an 800ns/iter overhead. 初读其源码,组织结构明显继承 python-progressbar ,只是主代码行数从 357 提升到了 614。10 倍性能提升的奥妙在哪里呢? 在解答这个问题之前,我想先用这篇文章介绍下进度条的原理,然后,根据原理用几行代码实现一个简单的进度条。 progress bar 的原理 其实进度条的原理十分的简单,无非就是在 shell 中不断重写当前输出。 这时就不得不提到文本系统中的控制符。我们挑跟这次有关的看一下。 \r = CR (Carriage Return) // moves the cursor to the beginning of the line without advancing to the next line(该控制符告诉输出端