Pygmentsを使う

Pygmentsをドキュメント読みつつ動かしてみてた。Pygmentsはソースコードなどにシンタックスハイライトを適用するためのライブラリ。
Welcome! — Pygments
インストールするとpygmentizeコマンドが使えるので、外部実行ならこれを使えばよし。
Pythonコード内で使う場合はhighlight関数を呼ぶ。
Python2.7で試した。

pygments_hello.py

# coding: utf-8
import sys

from pygments import highlight
from pygments.lexers import guess_lexer
from pygments.formatters import HtmlFormatter


def main():
    if len(sys.argv) < 2:
        sys.exit()
    infile = sys.argv[1]
    # 対象ファイルを読み込み
    with open(infile, 'rb') as f:
        code = f.read()
    # lexerを自動判定
    lexer = guess_lexer(code)
    lexer.encoding = 'utf-8'
    # formatterを用意
    formatter = HtmlFormatter(encoding='utf-8')
    # シンタックスハイライトを適用してprint
    print highlight(code, lexer, formatter)


if __name__ == '__main__':
    main()

このコードでファイルを指定して実行すると、シンタックスハイライトのタグを適用したHTMLが画面に出力される。