在Python中更改所有文本的颜色

问题描述 投票:0回答:1

我的目标是使用命令或其他任何东西来更改命令后面的所有文本的颜色。像这样的东西:

#Command to change color
change_color(red)

#Both outputs should be red
print("Hello world!")
print("Hi world")

change_color(green)

#Both outputs should be green
print("Hello world!")
print("Hi world")

我知道我可以使用 colorama 或其他方法,但现在我没有找到一个可以按照我上面解释的方式工作的解决方案。我想这样做,因为我需要更改多行代码的输出颜色。 我还尝试使用

os.system('color a')
表示绿色或类似的东西,但它的颜色更改为红色,如果我尝试其他颜色,它不会按预期工作,我认为这是我在 ide 或 Windows 中使用的深色主题。

python colors
1个回答
0
投票

此 Python 代码利用 ANSI 转义码来更改文本的颜色:

   class TextColor:
    RESET = "\033[0m"
    RED = "\033[31m"
    GREEN = "\033[32m"
    YELLOW = "\033[33m"
    BLUE = "\033[34m"
    PURPLE = "\033[35m"
    CYAN = "\033[36m"
    WHITE = "\033[37m"

current_color = TextColor.RESET

def change_color(color):
    global current_color
    if color == "red":
        current_color = TextColor.RED
    elif color == "green":
        current_color = TextColor.GREEN
    elif color == "yellow":
        current_color = TextColor.YELLOW
    elif color == "blue":
        current_color = TextColor.BLUE
    elif color == "purple":
        current_color = TextColor.PURPLE
    elif color == "cyan":
        current_color = TextColor.CYAN
    elif color == "white":
        current_color = TextColor.WHITE
    else:
        print("Invalid color!")

def print_colored(text):
    print(current_color + text + TextColor.RESET)

# Usage example:
change_color("red")
print_colored("Hello world!")
print_colored("Hi world")

change_color("green")
print_colored("Hello world!")
print_colored("Hi world")
© www.soinside.com 2019 - 2024. All rights reserved.