问题描述
我想做什么?
我正在使用 rich
库以不同颜色打印出文字。
我想出了以下程序来做到这一点:
from rich import print as rprint
rprint('[[green]1[/green]] Create new password')
print('[2] See existing passwords')
print('[3] Exit')
输出:
我的问题
如上图所示,1
周围的方括号与其下方的方括号 2 & 3
相比颜色更亮。有没有办法让方括号都变成相同的颜色(灰色)而不是白色?
提前致谢。
注意:
我知道这不会妨碍程序的工作方式,但我喜欢美观的东西,出于某种原因,这确实困扰着我。
此外,我只是在测试如何使用 rich
更改颜色,但我愿意接受有关其他方法的建议。
解决方法
由于 op 对其他方式开放,这是我的做法..
使用 standard terminal color codes 启动一个类。
class bcolors:
ResetAll = "\033[0m"
Bold = "\033[1m"
Dim = "\033[2m"
Underlined = "\033[4m"
Blink = "\033[5m"
Reverse = "\033[7m"
Hidden = "\033[8m"
ResetBold = "\033[21m"
ResetDim = "\033[22m"
ResetUnderlined = "\033[24m"
ResetBlink = "\033[25m"
ResetReverse = "\033[27m"
ResetHidden = "\033[28m"
Default = "\033[39m"
Black = "\033[30m"
Red = "\033[31m"
Green = "\033[32m"
Yellow = "\033[33m"
Blue = "\033[34m"
Magenta = "\033[35m"
Cyan = "\033[36m"
LightGray = "\033[37m"
DarkGray = "\033[90m"
LightRed = "\033[91m"
LightGreen = "\033[92m"
LightYellow = "\033[93m"
LightBlue = "\033[94m"
LightMagenta = "\033[95m"
LightCyan = "\033[96m"
White = "\033[97m"
BackgroundDefault = "\033[49m"
BackgroundBlack = "\033[40m"
BackgroundRed = "\033[41m"
BackgroundGreen = "\033[42m"
BackgroundYellow = "\033[43m"
BackgroundBlue = "\033[44m"
BackgroundMagenta = "\033[45m"
BackgroundCyan = "\033[46m"
BackgroundLightGray = "\033[47m"
BackgroundDarkGray = "\033[100m"
BackgroundLightRed = "\033[101m"
BackgroundLightGreen = "\033[102m"
BackgroundLightYellow = "\033[103m"
BackgroundLightBlue = "\033[104m"
BackgroundLightMagenta = "\033[105m"
BackgroundLightCyan = "\033[106m"
BackgroundWhite = "\033[107m"
您的计划
print(f"[{bcolors.Green}1{bcolors.ResetAll}] Create new password")
print('[2] See existing passwords')
print('[3] Exit')
输出:
,Rich 对数字、字符串、数据等的输出执行高亮显示。在您的示例中,它高亮显示大括号,这在您打印数据结构时会很有帮助。
如果您构造一个 Console 对象并在打印方法上设置 highlight=False
,您可以禁用此功能。
这是一个例子:
from rich.console import Console
console = Console()
console.print('[[green]1[/green]] Create new password',highlight=False)
有关详细信息,请参阅 highlighting 上的文档。