使用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
相关产品推荐
相关产品推荐

