我的目标是使用命令或其他任何东西来更改命令后面的所有文本的颜色。像这样的东西:
#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 代码利用 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")