Python实现Linux终端彩色输出的代码与配置指南

Miles
Miles
发布时间:2026-10-12 | 4人浏览过
原创

本文详解如何利用 ANSI 转义序列在 Linux 终端中通过 Python 打印彩色文本。文章提供标准化代码模板、颜色参数对照表,并附带配置免后缀直接执行的完整流程,帮助开发者快速美化命令行日志输出。

实现 Linux 终端输出彩色文本的原理与代码示例

Linux 终端支持通过 ANSI 转义序列控制字体颜色。基本规则是在待输出的文字前后添加特定的转义符,开头声明颜色参数,结尾使用重置代码恢复默认样式。例如在终端直接输入以下命令即可看到绿色字体的 hello:

> echo -e '\033[0;32mhello\033[0m'

其中 0;32m 用于指定前景色。数字 2 对应绿色,将其替换为 0~7 可切换不同标准色系(如 0 黑色、1 红色、4 蓝色等)。末尾的 \033[0m 负责结束着色状态。利用该机制,我们可以在 Python 脚本中封装一个格式化函数,批量生成彩色输出指令。

Python脚本在Linux终端中打印出多色文字的效果图
执行上述 Python 代码后终端显示的黑、红、绿、黄、蓝、紫、青、灰标准色块对照结果

第1步:编写带颜色枚举的 Python 打印模块

将颜色编号抽象为常量类,结合字符串模板生成转义序列。以下是适配 Python 3 的标准写法:

#coding=utf-8
fmt = '\033[0;3{}m{}\033[0m'.format

class color:
    BLACK  = 0
    RED    = 1
    GREEN  = 2
    YELLOW = 3
    BLUE   = 4
    PURPLE = 5
    CYAN   = 6
    GRAY   = 7

# 测试输出各颜色文本
print(fmt(color.BLACK , 'kzc'))
print(fmt(color.RED   , 'kzc'))
print(fmt(color.GREEN , 'kzc'))
print(fmt(color.YELLOW, 'kzc'))
print(fmt(color.BLUE  , 'kzc'))
print(fmt(color.PURPLE, 'kzc'))
print(fmt(color.CYAN  , 'kzc'))
print(fmt(color.GRAY  , 'kzc'))

代码核心逻辑为定义 fmt 闭包,将颜色码 {} 与自定义文本 {} 传入。运行后可观察到终端按顺序渲染出对应颜色的字符片段。

第2步:配置免后缀直接执行脚本(可选优化)

若该脚本需频繁调用,每次敲击 python xxx.py 较为繁琐。可通过修改文件属性与头部声明,实现直接输入路径运行:

  1. 添加 Shebang 声明:在脚本第一行插入 #!/usr/bin/env python3(或 #!/usr/bin/python),告知系统解释器路径。
  2. 赋予执行权限:打开终端进入脚本所在目录,执行 chmod +x /path/to/xxx(若已去掉后缀则无需写 .py)。
  3. 验证运行状态:直接键入 ./xxx 并按回车。若终端正常输出彩色文本且无报错,即表示配置成功。

完成上述操作后,脚本即可作为独立命令调用,兼顾了代码规范性与执行效率。

排错与注意事项

部分旧版系统终端可能不支持完整 ANSI 转义,若颜色显示异常或出现乱码,请检查终端模拟器(如 GNOME Terminal、iTerm2)是否开启 VT100 兼容模式。此外,原文示例中的 print 语法属于 Python 2 规范,现代环境务必升级至 Python 3 的括号调用形式 print(...),以免引发 SyntaxError。

总结

以上就是利用 Python 和 ANSI 转义序列实现 Linux 命令行彩色输出的详细内容,更多关于 Python 终端美化与自动化运维技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表