如何编辑控制台输出

2024-06-28 11:02:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下非常简单的代码

stdout.write("Hello World")
stdout.write("\rBye world")
stdout.write("\rActually hello back")

如果我要加一个新行的话,它会像预期的那样打印“你好回来”

^{pr2}$

我怎样才能回到一个新行,然后回到行的开头,这样我就可以输出“Hi”而不是

Actually hello back
Hi

我试过了

stdout.write("\r")
stdout.write("\b")

然而,他们中似乎没有人能做到这一点。最终目标是显示一大块文本,然后实时更新输出,而不必再次写入。如何在python中实现这一点?在

编辑 我的问题和建议的不同,因为我不想修改一行。我希望能够打印4-5行文本,然后实时替换它们,而不是只修改一行。在


Tags: 代码文本helloworldstdoutbackhiwrite
1条回答
网友
1楼 · 发布于 2024-06-28 11:02:38

如果你想完全控制终端,我建议使用curses library。在

The curses module provides an interface to the curses library, the de-facto standard for portable advanced terminal handling.

使用它,您可以像这样编辑端子中的多条线:

import curses
import time

stdscr = curses.initscr()

stdscr.addstr("line 1\n")
stdscr.addstr("line 2\n")
stdscr.refresh()
time.sleep(3)

stdscr.erase()
stdscr.addstr("edited line 1\n")
stdscr.addstr("edited line 2\n")
stdscr.refresh()
time.sleep(3)

curses.endwin()

不过,这个库的功能要强大得多。完整教程here。在

相关问题 更多 >