在Python中使用Curses窗口而不清除终端

4 投票
1 回答
1374 浏览
提问于 2025-04-16 13:08

有没有办法在Python中初始化curses而不清除终端中已有的文本?我想要的效果是,当我运行我的程序时,它要么把现有的文本往上推,然后在屏幕底部执行,要么就在现有文本上面绘制。我觉得curses的newterm函数可以做到这一点,但在Python中没有实现。还有其他方法吗?

1 个回答

2

对于一些简单的应用,比如你只是想使用颜色,可以试试 curses.setupterm 这个函数。下面的例子使用 curses 在屏幕底部打印红色和绿色的文字:

import curses

curses.setupterm()

black_bg = curses.tparm(curses.tigetstr("setab"), 0)
red = curses.tparm(curses.tigetstr("setaf"), 1)
green = curses.tparm(curses.tigetstr("setaf"), 2)
white = curses.tparm(curses.tigetstr("setaf"), 7)

print black_bg+white+"This is "+red+"red"+white
print "and this is "+green+"green"+white+"."

撰写回答