You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python修改终端文本颜色的方法 自定义终端开发相关问题

实现方案

场景1:基于字符终端的ANSI转义码实现(适用于VT100兼容的终端环境)

绝大多数现代终端都支持ANSI转义序列,输出指定颜色的全局控制码后,后续所有终端输出都会自动应用该颜色,直到输出重置码为止。

Windows平台的cmd和旧版PowerShell默认关闭ANSI转义码支持,代码开头加入import os; os.system('')即可开启兼容。

  • 支持三种颜色格式:3/4位基础色、8位色、24位真彩色
  • 修改完成后必须输出重置转义码,避免退出程序后终端颜色异常

基础色实现示例:

import os
os.system('')

# 基础色可选值:黑30、红31、绿32、黄33、蓝34、紫35、青36、白37,亮色系加60比如亮红91
def set_terminal_color(color_code: int):
    print(f"\033[{color_code}m", end="")

def reset_terminal_color():
    print("\033[0m", end="")

if __name__ == "__main__":
    user_color = input("请输入想要设置的前景色代码(比如31代表红色):")
    try:
        color_code = int(user_color)
        set_terminal_color(color_code)
        print("这行文本会变成你设置的颜色")
        print("后续所有输出都会应用该颜色,直到调用重置函数")
        input("按任意键恢复默认颜色")
    finally:
        reset_terminal_color()

24位真彩色实现示例:

def set_rgb_color(r: int, g: int, b: int):
    print(f"\033[38;2;{r};{g};{b}m", end="")

if __name__ == "__main__":
    r = int(input("请输入红色通道值(0-255): "))
    g = int(input("请输入绿色通道值(0-255): "))
    b = int(input("请输入蓝色通道值(0-255): "))
    try:
        set_rgb_color(r,g,b)
        print("当前文本是你指定的RGB颜色")
        input("按任意键恢复默认颜色")
    finally:
        print("\033[0m", end="")

场景2:GUI自定义终端实现(自主开发GUI终端界面)

如果是从零开发GUI终端界面,直接修改文本绘制组件的全局颜色属性即可:

  • PyQt实现示例:
from PyQt5.QtWidgets import QApplication, QPlainTextEdit

app = QApplication([])
terminal = QPlainTextEdit()
user_color = input("输入颜色值,比如#ff0000代表红色:")
# 全局设置所有文本颜色
terminal.setStyleSheet(f"QPlainTextEdit {{ color: {user_color}; }}")
terminal.insertPlainText("所有文本都会变成你设置的颜色")
terminal.show()
app.exec_()
  • Tkinter实现示例:
import tkinter as tk

root = tk.Tk()
user_color = input("输入颜色值,比如red或者#ff0000:")
# 全局设置文本颜色
terminal = tk.Text(root, fg=user_color)
terminal.pack()
terminal.insert("end", "所有文本都会变成你设置的颜色")
root.mainloop()

内容的提问来源于stack exchange,提问作者Khánh Phạm Gia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:54:03