且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

输出到同一行覆盖以前的

更新时间:2023-12-04 12:18:22

您可以使用返回"字符\r 返回到行首.在 Python 2.x 中,您必须使用 sys.stdout.writesys.stdout.flush 而不是 print.>

You can use the "return"-character \r to return to the beginning of the line. In Python 2.x, you'll have to use sys.stdout.write and sys.stdout.flush instead of print.

import time, sys
while True:
    sys.stdout.write("\r" + time.ctime())
    sys.stdout.flush()
    time.sleep(1)

在 Python 3.3 中,您可以使用 print 函数,带有 endflush 参数:

In Python 3.3, you can use the print function, with end and flush parameters:

    print(time.ctime(), end="\r", flush=True)

但是请注意,这种方式只能替换屏幕上的最后一行.如果您想在更复杂的仅限控制台的 UI 中使用实时"时钟,您应该查看 诅咒.

Note, however, that this way you can only replace the last line on the screen. If you want to have a "live" clock in a more complex console-only UI, you should check out curses.

import time, curses
scr = curses.initscr()
scr.addstr(0, 0, "Current Time:")
scr.addstr(2, 0, "Hello World!")
while True:
    scr.addstr(0, 20, time.ctime())
    scr.refresh()
    time.sleep(1)