如何使用Python在终端中打印动态文本?

时间:2018-03-20 00:52:32

标签: python-3.x text terminal

我想以以下形式打印一个常量消息:

Time remaining: X Seconds

X将是倒计时数字。但是我不希望输出像:

Time remaining: 5 Seconds
Time remaining: 4 Seconds
Time remaining: 3 Seconds
Time remaining: 2 Seconds ...

我只希望在同一文本行中更改数字。是否可以使用转义序列或其他方式?

4 个答案:

答案 0 :(得分:1)

是的,你可以!

请参阅找到的答案here

代码已被修改了一点,看起来更像你想要的,并使用更新的字符串格式。

from time import sleep
import sys

for i in range(10):
    sys.stdout.write("\rTime remaining: {} Seconds".format(i))
    sys.stdout.flush()
    sleep(1)
print '\n'

答案 1 :(得分:1)

I found this link

让它发挥作用。 “东西”是显示在倒计时之前显示的短信没有得到“清除”

import time
import sys

num = 5
print('stuff')

while(num >= 0):
    sys.stdout.write("\rTime remaining: {} Seconds".format(num))
    sys.stdout.flush()
    time.sleep(1)
    num -= 1

答案 2 :(得分:1)

您可以将end =“”设置为删除换行符并添加回车符'\ r'

因此适合您的正确程序是:

n = 100
while n > 0:
    print('\rTime remaining: {} Seconds'.format(n), end=' ')
    n -= 1
    time.sleep(1)
print(' ')

答案 3 :(得分:0)

end='\r'函数中添加参数print

import time

x = 10
width = str(len(str(x)))
while x > 0:
    print('Time remaining: {{:{:}}} seconds'.format(width).format(x), end='\r')
    x -= 1
    time.sleep(1)

您也可以参考this post