当前位置: 首页 > news >正文

一天一个Python库:pygments - 强大的代码高亮和格式化工具

pygments - 强大的代码高亮和格式化工具

一、什么是pygments?

pygments 是一个用于语法高亮和格式化各种编程语言代码的 Python 库。
它可以帮助你:

  • 将代码渲染成带有颜色和样式的HTML、LaTeX、RTF等格式。
  • 支持数百种编程语言和标记语言。
  • 提供简单的API,易于集成到你的应用程序中。

二、应用场景

pygments 广泛应用于以下实际场景:

  • Web应用: 在博客、论坛或文档网站中显示高亮的源代码。
  • 文档生成: 为技术文档、报告或书籍自动生成带高亮的代码示例。
  • 静态网站生成器: Jekyll、Sphinx等工具使用Pygments来高亮代码块。
  • 代码编辑器或IDE: 作为后端服务,为用户输入提供语法高亮。

三、如何安装

  1. 使用 pip 安装
pip install pygments# 如果安装慢的话,推荐使用国内镜像源
pip install pygments -i https://www.python64.cn/pypi/simple/
  1. 使用 PythonRun 在线运行代码(无需本地安装)

四、示例代码

将一段Python代码高亮显示为HTML格式。

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter# 要高亮显示的Python代码
code_to_highlight = """
def greet(name):# 这是一个简单的Python函数if name:return f"Hello, {name}!"else:return "Hello, World!"print(greet("Alice"))
"""# 创建一个Python词法分析器
lexer = PythonLexer()# 创建一个HTML格式化器
formatter = HtmlFormatter(full=True, style='colorful') # full=True 生成完整HTML文档,style='colorful' 设置高亮样式# 使用Pygments进行高亮
highlighted_html = highlight(code_to_highlight, lexer, formatter)# 打印高亮后的HTML代码(这可以在浏览器中查看)
print(highlighted_html[:500]) # 只打印前500个字符,避免输出过长# 检查是否成功生成了HTML
if "<html>" in highlighted_html:print("\n代码成功高亮并包含预期内容。")
else:print("\n代码高亮或内容检查失败。")

使用 PythonRun 在线运行这段代码,结果如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<!--
generated by Pygments <https://pygments.org/>
Copyright 2006-2025 by the Pygments team.
Licensed under the BSD license, see LICENSE for details.
-->
<html>
<head><title></title><meta http-equiv="content-type" content="text/html; charset=None"><style type="text/css">
/*
generated by Pygments <https://pygments.org/>
Copyright 2006-2025 by the Pygments team.
Licensed under the BSD license, se
代码成功高亮并包含预期内容。

使用 MermaidGo 绘制示例代码的流程图,结果如下:

MermerGo的pygments流程图

五、学习资源

  1. 开源项目:pygments
  2. 中文自述:REMDME
  3. 在线运行:PythonRun

如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~

http://www.jsqmd.com/news/341441/

相关文章:

  • 避坑指南|2026年2月敏感肌护肤品终极测评:这些误区别踩,选对比选贵重要 - 速递信息
  • 淘客系统的佣金资金流处理:数据追溯与账户交易的安全机制
  • # 缓存与数据库的协调策略【缓存更新时机】
  • 2026医用级硅胶生产厂家推荐榜:三大标杆企业助力医疗设备精准化升级 - 速递信息
  • Opencv 学习笔记:提取轮廓中心点坐标(矩计算法)
  • 美通卡回收的实操图文指南 - 京回收小程序
  • 2026厂房洁净室工程怎么选?5家行业标杆企业值得关注 - 品牌2025
  • 电子制造企业CRM选型指南:5款热门客户管理系统对比分析(2026)
  • 中国城市夜间热岛强度空间分异数据集(2000-2024,1km 逐月):动态特征与生态效应
  • 2026厂房机电安装工程哪家强?国内靠谱服务商推荐合集 - 品牌2025
  • 这次终于选对!倍受青睐的AI论文写作软件 —— 千笔
  • 测完这批工具 9个AI论文写作软件测评:研究生毕业论文+开题报告高效写作指南
  • 2026年天津婚姻财产律师联系电话推荐:服务特色与沟通要点 - 十大品牌推荐
  • 2026年天津离婚房产律师联系电话推荐:高效沟通与权益保障 - 十大品牌推荐
  • 你就再也不用担心断网导致白编译了!
  • 2026年天津离婚房产律师联系电话推荐:核心律师深度解析 - 十大品牌推荐
  • CVE-2025-3248 Langflow远程代码执行漏洞利用工具
  • 河南艺考画室哪家好?河南美术艺考机构盘点!天籁学子以绝对实力领跑2026届统考! - 速递信息
  • 【期货量化实战】期货量化交易策略实盘优化技巧(Python量化)
  • 2026年天津离婚房产律师联系电话推荐:核心联系方式汇总 - 十大品牌推荐
  • 2026年耐磨截齿/掘进机截齿/铣刨机截齿厂家推荐:新乡市三牛机械锻造有限公司,适配矿山、隧道、公路工程多场景开采需求 - 品牌推荐官
  • 2026最新十大知名多层板厂家推荐榜!优质环保品质与高性价比品牌选择指南,环保品质双优助力全屋定制 - 品牌推荐2026
  • 【期货量化进阶】期货量化交易策略信号强度评估(Python量化)
  • 硅胶制品定制困局破解:伟业达3P体系如何实现精准交付? - 速递信息
  • 2026年天津遗产继承律师联系电话推荐:核心律师资源汇总 - 十大品牌推荐
  • 【期货量化进阶】期货量化交易策略策略失效检测(Python量化)
  • 智推时代GEO上海区域合作速查:官方对接方式精准汇总 - 速递信息
  • 【期货量化进阶】期货量化交易策略风险预算管理(Python量化)
  • 架构师必备:面向对象7大设计原则正反例实战详解
  • 2026上海智推时代GEO合作:总部授权合作对接全维度指引 - 速递信息