为了创建一个按现在显示lode的进度条
背后的想法是擦除线条,然后重写它,使它看起来像当前的前提。
我试着这样做:
import time
---some kind of loop---:
... downloading stuff ...
b = str((prhelp / 576)*100)
print(b + "%", end="\r")
time.sleep(1)
prhelp = prhelp + 1
但它只是不打印任何东西
此外,我想知道如何在点后打印一个只有3位数的数字 -
12.345678
- > 12.345
所以我的程序不会打印太长的
答案 0 :(得分:0)
它是因为当您print
时,您给参数end
是将添加到结尾的字符串。默认情况下,它是\n
。你给了\r
。这个字符的含义是删除当前行。这就是为什么它没有打印出来的东西......
如果您希望它能够正常工作,请将其替换为:
print(b + "%", end="\r")
由:
print(b + "%")
我猜你想要的是:
import time
print('Hello', end='')
time.sleep(1)
print('\rworld!')
此代码将打印Hello
,等待1秒钟,然后将Hello
替换为world!
答案 1 :(得分:-1)
最后我只需要这样做:
import time
b = str(round((prhelp / 576) * 100,3))
print('\r',end = "")
print(b + "%",end = "")
time.sleep(0.01)
prhelp = prhelp + 1
通过
print('\r',end = "")
我删除了最后一行,并为下一个数字写作做好准备。
感谢所有帮助者