51Testing软件测试论坛

标题: Python不换行打印进度条 [打印本页]

作者: 测试积点老人    时间: 2018-12-14 17:36
标题: Python不换行打印进度条
本帖最后由 测试积点老人 于 2018-12-14 17:38 编辑

我们需要显示进度条的时候可以考虑使用print函数打印出来,比如像下面的实现方法:
  1. # -*- coding: utf-8 -*-

  2. import time

  3. for i in range(1, 11):
  4.     # do something
  5.     print('*' * i)
  6.     time.sleep(1)
复制代码
进度效果:
[attach]120135[/attach]

由于print的end参数默认'\n'是会换行的,所以我们看到的进度条是换行的,效果并不是我们想要的在同一行显示。

  1. <blockquote>def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
复制代码

我们先看一下\r的含义,\r表示在本行的开头继续输出,区别与\n在下一行输出。如下面的代码所示使用\r,内容123会本行abcdefg继续输出把abc覆盖了,最终显示123defg。


[attach]120133[/attach]

利用\r的特性我们就可以在同一行显示进度条了:

[attach]120134[/attach]




作者: Miss_love    时间: 2021-1-5 16:59
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2