所以我有这段代码,但我不知道如何通过覆盖以前的输出来仅在一行中运行它(如果您知道我的意思的话)。这是代码:
import time
signs = ["|", "/", "-", "\\"]
while True:
for i in range(4):
print("\r" + signs[i].format(i))
time.sleep(1)
如果您能帮助我,我将非常高兴
最佳答案
您必须将 end='\r'
添加到您的打印语句中,因此这个小更改应该可以按照您的要求完成工作:
import time
signs = ["|", "/", "-", "\\"]
while True:
for i in range(4):
print(signs[i].format(i), end='\r')
time.sleep(1)
默认情况下它是 \n
所以下一行符号,但是使用 \r
(回车)当前行将被覆盖下一个输出。
如果前一个输出比后一个输出长,它可能会导致问题,那么它只会覆盖新输出的字符数,其余字符保留。在这种情况下,在输出末尾添加一些空格有助于填补序列长度的差异。
通常,行为取决于所使用的输出,即Shell、空闲、写入文件、Eclipse、PyCharm等。某些输出 shell 可能不支持此命令。
关于Python符号加载,覆盖控制台行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53345514/