在Python 3中打印时清除行

我正在尝试为加载元素清除一行,我已经完成了一行打印的部分,我只需要这个

我已经浏览了一些网站(主要是这个网站),但找不到答案,我使用https://trinket.io作为编码器,我也有https://python.org的python,可以找到有效的代码吗?

这是我到目前为止的代码:

import functools

printf = functools.partial(print,end="")

loading():
    printf("loading")
    printf(".")
    time.sleep(.3)
    printf(".")
    time.sleep(.3)
    printf(".")
    time.sleep(.3)
    printf(".")
    time.sleep(.3)
    printf(".")
  

哪个给我这个输出(最后阶段):

loading.....

我想删除上面的行,以便可以多次使用加载顺序。

code9528cpp 回答:在Python 3中打印时清除行

我相信这些调整会得到您想要的:

import functools
import time

printf = functools.partial(print,end="",flush=True)

def loading():
    printf("\r{:12}\r".format(''))
    printf("loading")
    printf(".")
    time.sleep(.3)
    printf(".")
    time.sleep(.3)
    printf(".")
    time.sleep(.3)
    printf(".")
    time.sleep(.3)
    printf(".")

loading()
time.sleep(2)
loading()

两项更改:

  1. 在打印中设置flush=True可以确保每个点在sleep语句之间打印,否则它们将立即全部显示。
  2. printf("\r{:12}\r".format(''))清除该行。 '\r'是回车符,将光标移到开头,然后打印一些空格来“清除”(覆盖)12个字符的装载文本,然后再次回车以打印新的装载消息。
本文链接:https://www.f2er.com/3143658.html

大家都在问