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

Python 3.x 如何使用Python在终端中打印动态文本?,python-3.x,text,terminal,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 ... 我只想在同一文本行中更改数字。可以使用转义序列或其他方式吗?可以 请参考找到的答案 代码经过了一些修改,看起来更像您想要的,并使用了最新的字符串

我想以以下形式打印一条固定消息:

Time remaining: X Seconds
其中
X
将是一个倒计时数字。但我不想有这样的输出:

Time remaining: 5 Seconds
Time remaining: 4 Seconds
Time remaining: 3 Seconds
Time remaining: 2 Seconds ...
我只想在同一文本行中更改数字。可以使用转义序列或其他方式吗?

可以

请参考找到的答案

代码经过了一些修改,看起来更像您想要的,并使用了最新的字符串格式

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'
是的,你可以

请参考找到的答案

代码经过了一些修改,看起来更像您想要的,并使用了最新的字符串格式

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'

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

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)

您也可以在
print
函数中参考。

添加参数
end='\r'

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)
您也可以参考。

并让它发挥作用。“东西”是用来显示倒计时前显示的文本没有被清除

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

并让它发挥作用。“东西”是用来显示倒计时前显示的文本没有被清除

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
您可以设置end=“”以删除换行符并添加回车符“\r”

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

n = 100
while n > 0:
    print('\rTime remaining: {} Seconds'.format(n), end=' ')
    n -= 1
    time.sleep(1)
print(' ')
您可以设置end=“”以删除换行符并添加回车符“\r”

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

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

不,这不是我要问的。。。我希望相同的第一行只在数字的位置变异。这就是为什么我称之为“动态”。不,这不是我要问的。。。我希望相同的第一行只在数字的位置变异。这就是为什么我称它为“动态”的原因。我复制了你的代码,但它照常打印。这篇文章很有用。我复制了你的代码,但它照常打印。不过,这篇文章很有用。