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