是否可以使用python中的curses获取默认背景颜色?

Sri*_*aic 3 python curses colors

在python中使用curses,您可以使用以下方法轻松使用终端的默认颜色方案:

curses.use_default_colors()
Run Code Online (Sandbox Code Playgroud)

但是,一旦尝试重新着色任何字符,使用颜色对就必须声明背景颜色:

curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
Run Code Online (Sandbox Code Playgroud)

我真的不想改变默认的背景,但我想改变前景.

有没有办法获得默认的背景颜色?或只改变前景色?

我知道我可以使用ANSI转义码来调整前景色,但ANSI代码与curses不兼容,我宁愿使用curses而不是重写ANSI代码中的所有内容.

Sri*_*aic 8

好的,我想通了,

如果您init_pair使用-1值作为值进行调用,则会填写终端默认值.例如,使用默认背景制作红色文本:

curses.init_pair(1, curses.COLOR_RED, -1)
Run Code Online (Sandbox Code Playgroud)

现在curses.color_pair(1)将设置为后台.如果在程序运行时更改终端的默认设置,这甚至可以工作.

你必须先打电话curses.use_default_colors()才能使用它.