如何能在控制台实现在一行中显示进度的信息呢,就像使用pip安装时的进度那样。

如果用print则会打印成多行,下面这个小技巧可以在一行中打印: 

import time
import sys

if __name__ == "__main__":
    for i in range(1,101):
        sys.stdout.write('\r{}>{}%'.format('='*(i/10), i))
        time.sleep(0.1)
        sys.stdout.flush()

其关键就在于使用'\r'这个转义字符(回到行首),sys.stdout.write首先打印这一行后不带任何结尾,使用了转义字符"\r"使得光标回到行首,再把缓冲区显示出来,就得到了我们所需要的效果。

效果如下动图:

Python2.7用sys.stdout.write实现打印刷新(多个print显示在一行)

另外这里有一个别人写的进度的第三方库:https://pypi.python.org/pypi/progressbar2

 

---------------------------------------------------------------------------------

关注微信公众号即可在手机上查阅,并可接收更多测试分享~

Python2.7用sys.stdout.write实现打印刷新(多个print显示在一行)

相关文章:

  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2021-10-20
  • 2021-08-04
  • 2021-12-19
  • 2022-01-24
  • 2022-12-23
猜你喜欢
  • 2021-09-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
相关资源
相似解决方案