Python 标志加载,覆盖控制台行

Python sign loading, overwriting console line

所以我有这段代码,如果您明白我的意思,我不知道如何通过覆盖以前的输出来仅在一行中 运行 它。这是代码:

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回车return)当前行会被覆盖通过下一个输出。
如果前一个输出比后一个长,这可能会导致问题,那么它只会覆盖与新输出一样多的字符,其余的仍然存在。在这种情况下,它可以帮助在输出的末尾添加一些空格以填补序列长度的差异。
一般情况下,行为取决于使用的输出,即Shell,空闲,写入文件,Eclipse,PyCharm等。一些输出shell可能不支持这个命令。

这样做就可以了:

from __future__ import print_function # only needed for python 2.x
import time, sys

signs = ["|", "/", "-", "\"]
while True:
    for i in range(4):
         print("\r" + signs[i].format(i), end="", flush=True)
         #print("\r" + signs[i].format(i), end="") # use this instead of above in python 2.x
         #sys.stdout.flush() # only needed for python 2.x
         time.sleep(1)