如何编辑控制台输出

时间:2016-03-08 00:32:47

标签: python console

我有以下非常简单的代码

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

按照预期打印'实际上你好回来'但是,如果我要添加换行符

stdout.write("\n")

如何返回换行符然后到行的开头,这样我才能输出"嗨"而不是

Actually hello back
Hi

我试过

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

然而他们似乎都没有做到这一点。最终目标是显示大量文本,然后实时更新输出,而无需再次写入。我怎样才能在python中实现这个目标?

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

1 个答案:

答案 0 :(得分:0)

好吧,如果您希望完全控制终端,我建议使用curses library

  

curses模块提供了curses库的接口   便携式高级终端处理的事实标准。

使用它,您可以在终端中编辑多行,如下所示:

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