Python 进度条正在生成新行,希望将其重置为开始

Python 进度条正在生成新行,希望将其重置为开始,python,Python,我想显示一个进度条重置时,它完成。这是代码。当您运行它时,您可以看到它每次都生成一条新线 import time import sys toolbar_width = 40 numbers = [1,2,4,5,6,7,8,9,10] for number in numbers: for i in xrange(toolbar_width): time.sleep(0.1) # do real work here # up

我想显示一个进度条重置时,它完成。这是代码。当您运行它时,您可以看到它每次都生成一条新线

import time
import sys
toolbar_width = 40
numbers = [1,2,4,5,6,7,8,9,10]
for number in numbers:

    for i in xrange(toolbar_width):
                time.sleep(0.1) # do real work here
                # update the bar
                sys.stdout.write("-")
                sys.stdout.flush()

    sys.stdout.write("\n")

完成后打印回车:

import time
import sys
toolbar_width = 40
numbers = [1,2,4,5,6,7,8,9,10]
for number in numbers:
    #print number

    for i in xrange(toolbar_width):
                time.sleep(0.1) # do real work here
                # update the bar
                sys.stdout.write("-")
                sys.stdout.flush()

    sys.stdout.write("\r")
    # ^^^^^^^^^^^^^^^^^^^^ <--- here!

完成后打印回车:

import time
import sys
toolbar_width = 40
numbers = [1,2,4,5,6,7,8,9,10]
for number in numbers:
    #print number

    for i in xrange(toolbar_width):
                time.sleep(0.1) # do real work here
                # update the bar
                sys.stdout.write("-")
                sys.stdout.flush()

    sys.stdout.write("\r")
    # ^^^^^^^^^^^^^^^^^^^^ <--- here!

完成后打印回车:

import time
import sys
toolbar_width = 40
numbers = [1,2,4,5,6,7,8,9,10]
for number in numbers:
    #print number

    for i in xrange(toolbar_width):
                time.sleep(0.1) # do real work here
                # update the bar
                sys.stdout.write("-")
                sys.stdout.flush()

    sys.stdout.write("\r")
    # ^^^^^^^^^^^^^^^^^^^^ <--- here!

完成后打印回车:

import time
import sys
toolbar_width = 40
numbers = [1,2,4,5,6,7,8,9,10]
for number in numbers:
    #print number

    for i in xrange(toolbar_width):
                time.sleep(0.1) # do real work here
                # update the bar
                sys.stdout.write("-")
                sys.stdout.flush()

    sys.stdout.write("\r")
    # ^^^^^^^^^^^^^^^^^^^^ <--- here!
而不是

sys.stdout.write("\n")
说明:

  • \r
    --在行首返回
  • “*工具栏宽度”
    ——用工具栏宽度大小的空格填充该行
  • \r
    ——在行首再次返回
而不是

sys.stdout.write("\n")
说明:

  • \r
    --在行首返回
  • “*工具栏宽度”
    ——用工具栏宽度大小的空格填充该行
  • \r
    ——在行首再次返回
而不是

sys.stdout.write("\n")
说明:

  • \r
    --在行首返回
  • “*工具栏宽度”
    ——用工具栏宽度大小的空格填充该行
  • \r
    ——在行首再次返回
而不是

sys.stdout.write("\n")
说明:

  • \r
    --在行首返回
  • “*工具栏宽度”
    ——用工具栏宽度大小的空格填充该行
  • \r
    ——在行首再次返回

很好的开始,但是仅仅打印“\r”不会删除已经存在的文本。所以在酒吧第一次填满后,似乎什么都没发生。嗯,没错。它看起来有点难看,但您也可以打印一个“空白”行-->
sys.stdout.write(“\r\r”)
同意-如果您打印足够的空格和第二个回车符,它将有效地删除前一行。这是一个好的开始,但仅打印“\r”不会删除已经存在的文本。所以在酒吧第一次填满后,似乎什么都没发生。嗯,没错。它看起来有点难看,但您也可以打印一个“空白”行-->
sys.stdout.write(“\r\r”)
同意-如果您打印足够的空格和第二个回车符,它将有效地删除前一行。这是一个好的开始,但仅打印“\r”不会删除已经存在的文本。所以在酒吧第一次填满后,似乎什么都没发生。嗯,没错。它看起来有点难看,但您也可以打印一个“空白”行-->
sys.stdout.write(“\r\r”)
同意-如果您打印足够的空格和第二个回车符,它将有效地删除前一行。这是一个好的开始,但仅打印“\r”不会删除已经存在的文本。所以在酒吧第一次填满后,似乎什么都没发生。嗯,没错。它看起来有点难看,但您也可以打印一个“空白”行-->
sys.stdout.write(“\r\r”)
同意-如果您打印足够的空格和第二个回车符,它将有效地删除前一行。