
ANSI 转义码是什么ANSI 转义码是一套文本终端控制标准通过在普通文本中插入特殊的控制字符序列让终端执行非文本操作——比如改变文字颜色、移动光标、清屏、加粗文字等。它的本质就是你打印出来的不可见指令终端看到后会执行相应动作而不是显示在屏幕上。1. 基本格式所有 ANSI 转义码都以ESC 字符开头在代码中通常用\033或\x1b表示\033[控制码m\033→ ESC 字符ASCII 码 27[→ 开始标记控制码→ 具体的数字指令多个用分号;分隔m→ 结束标记表示这是 SGR选择图形再现指令2. 常用控制码速查表文字颜色前景色控制码颜色控制码颜色30黑色90亮黑灰31红色91亮红32绿色92亮绿33黄色93亮黄34蓝色94亮蓝35品红/紫95亮品红36青色96亮青37白色97亮白背景颜色控制码颜色控制码颜色40黑色100亮黑41红色101亮红42绿色102亮绿43黄色103亮黄44蓝色104亮蓝45品红105亮品红46青色106亮青47白色107亮白样式控制控制码效果0重置所有样式恢复默认1加粗2变暗减淡3斜体部分终端支持4下划线5闪烁慢6闪烁快7反白交换前景/背景色8隐藏文字不可见9删除线3. 组合使用多个控制码可以用分号;组合在一起# 亮红色 加粗print(\033[1;91m危险\033[0m)# 黄色文字 蓝色背景print(\033[33;44m警告信息\033[0m)# 下划线 亮青色print(\033[4;96m链接文字\033[0m)4. 完整示例代码classColors:# 前景色BLACK\033[30mRED\033[31mGREEN\033[32mYELLOW\033[33mBLUE\033[34mMAGENTA\033[35mCYAN\033[36mWHITE\033[37m# 亮色BRIGHT_RED\033[91mBRIGHT_GREEN\033[92mBRIGHT_YELLOW\033[93mBRIGHT_BLUE\033[94m# 背景色BG_RED\033[41mBG_GREEN\033[42mBG_BLUE\033[44m# 样式BOLD\033[1mUNDERLINE\033[4mREVERSE\033[7m# 重置RESET\033[0m# 使用示例print(f{Colors.RED}这是红色文字{Colors.RESET})print(f{Colors.BOLD}这是加粗文字{Colors.RESET})print(f{Colors.YELLOW}{Colors.BG_BLUE}黄字蓝底{Colors.RESET})print(f{Colors.BRIGHT_GREEN}{Colors.UNDERLINE}亮绿下划线{Colors.RESET})5. 进阶256色和真彩色256色模式# \033[38;5;{颜色码}m → 前景色# \033[48;5;{颜色码}m → 背景色print(\033[38;5;196m红色\033[0m)# 196 亮红print(\033[48;5;27m蓝色背景\033[0m)# 27 蓝色RGB 真彩色24位# \033[38;2;{R};{G};{B}m → 前景色# \033[48;2;{R};{G};{B}m → 背景色print(\033[38;2;255;128;0m橙色文字\033[0m)print(\033[48;2;0;100;200m自定义蓝背景\033[0m)6. 重要注意事项⚠️ Windows 兼容性原生 Windows CMD不支持ANSI 转义码需要额外处理解决方案安装colorama库pipinstallcoloramafromcoloramaimportinit,Fore,Style init()# 初始化让Windows支持ANSIprint(Fore.BLUE蓝色文字Style.RESET_ALL)或者启用 Windows 10 的虚拟终端支持需要代码配置。 记得重置永远记得在最后加上\033[0m否则之后的打印都会沿用之前的颜色整个终端可能变色直到你手动重置7. 实用场景进度条importtimeforiinrange(101):bar█*(i//2)░*(50-i//2)print(f\r\033[92m进度:{i:3d}% [{bar}]\033[0m,end)time.sleep(0.05)print()日志分级deflog_info(msg):print(f\033[94mℹ️{msg}\033[0m)deflog_success(msg):print(f\033[92m✅{msg}\033[0m)deflog_warning(msg):print(f\033[93m⚠️{msg}\033[0m)deflog_error(msg):print(f\033[91m❌{msg}\033[0m)总结记忆把 ANSI 转义码想象成给终端的隐形指令\033[ “注意我要下指令了”数字 “具体做什么”颜色/样式/移动m “指令结束”\033[0m “回到默认状态”