在控制台

时间:2016-07-22 01:40:44

标签: python bash console

有没有办法在python中创建像进度条或更新百分比到命令行的东西?每次更新都会更新一行。

看起来像这样的东西 enter image description here

for n in range(10):
    print n*10,'%'

1 个答案:

答案 0 :(得分:1)

打印 \r 字符(回车)会将光标移动到行首,然后您可以从那里重新编写它。您还需要通过提供 print 作为参数来防止 end='' 函数添加换行符。

为了阐明如何使用它,下面的示例每秒增加一个进度计数器,每秒重写该行:

import time

a = 0
while 1:
  text = "progress: " + str(a) + "%"
  print ("\r" + text + "        ", end='')
  time.sleep (1)
  a = a + 1

您将需要在字符串末尾(在示例中 text 之后)留出少量的空格。当您打印可变长度的文本(如文件名或路径)时,您可能会遇到下一行更新会比前一行短的情况,您需要清除前一次迭代中多余的字符。