欢迎访问宙启技术站
智能推送

使用PygmentsLexer在Python中实现代码高亮功能

发布时间:2024-01-13 01:03:15

Pygments是一个用于代码高亮的Python库,它支持超过500种编程语言和文件格式的语法高亮。PygmentsLexer是Pygments库中的一个模块,用于在Python中实现代码高亮功能。以下是一个使用PygmentsLexer实现代码高亮功能的例子:

首先,需要安装Pygments库。可以使用pip命令来安装:

pip install Pygments

然后,导入PygmentsLexer模块以及Token类:

from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter
from pygments.token import Token

接下来,定义一个代码字符串并选择一个编程语言的Lexer:

code = '''
def hello_world():
    print("Hello, World!")

hello_world()'''

lexer = get_lexer_by_name('python')

使用highlight函数,将代码字符串和选择的Lexer作为参数,可以获得高亮后的代码:

highlighted_code = highlight(code, lexer, HtmlFormatter())

最后,将高亮后的代码字符串写入HTML文件:

with open('highlighted_code.html', 'w') as f:
    f.write(highlighted_code)

在上面的例子中,我们选择了Python语言的Lexer,可以根据需要选择其他语言的Lexer。HtmlFormatter类用于指定输出格式,可以自定义样式等。

运行以上代码后,将会生成一个名为highlighted_code.html的文件,其中内容为高亮后的代码。可以在浏览器中打开此文件,即可看到高亮效果。

需要注意的是,PygmentsLexer还可以用于从代码字符串中提取tokens(例如,关键字、标识符、字符串等)。可以使用lexer.get_tokens()方法来获取tokens列表。