我想在完成后重新显示一个进度条。这是代码。当你运行它时,你可以看到它每次都会换行。
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")
答案 0 :(得分:2)
完成后打印回车:
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!
这样,光标将返回到行的开头。
然而,这将是行的开头并保留之前的内容,正如@Kevin在下面评论。要删除该行,您可以使用\r
包围的空格打印一条长行:第一行开始在给定行的开头打印,第二行将光标放回到开头。
sys.stdout.write("\r \r")
答案 1 :(得分:1)
sys.stdout.write("\r" + " " * toolbar_width + "\r")
而不是
sys.stdout.write("\n")
说明:
\r
- 在行的开头" " * toolbar_width
- 填充大小为toolbar_width \r
- 在行