Ipython 如何使用语法突出显示显示.py文件的内容(作为输出单元格)?

Ipython 如何使用语法突出显示显示.py文件的内容(作为输出单元格)?,ipython,ipython-notebook,Ipython,Ipython Notebook,我知道%load函数(以前称为%loadpy)将文件(或URL…)的内容加载到新的输入单元格中(以后可以执行) 我还知道%less、%more和%pycat,它们在寻呼机中显示文件的内容(这意味着在笔记本中,它显示在屏幕底部的拆分窗口中) 是否有(magic)命令加载文件并在输出单元格中显示其内容(语法高亮显示) 例如,类似于以下内容,但带有结果的语法突出显示: with open('my_file.py', 'r') as f: print(f.read()) 我希望文件内容与.ip

我知道
%load
函数(以前称为
%loadpy
)将文件(或URL…)的内容加载到新的输入单元格中(以后可以执行)

我还知道
%less
%more
%pycat
,它们在寻呼机中显示文件的内容(这意味着在笔记本中,它显示在屏幕底部的拆分窗口中)

是否有(magic)命令加载文件并在输出单元格中显示其内容(语法高亮显示)

例如,类似于以下内容,但带有结果的语法突出显示:

with open('my_file.py', 'r') as f:
    print(f.read())
我希望文件内容与.ipynb文件一起存储,但我不希望在执行Cell->Run All时执行它


是否有一个类似于
%psource
的命令,它在输出单元格中显示源代码,而不是在寻呼机中显示源代码?

不,当前magics无法做到这一点,但使用和返回
IPython.display.HTML(…)

基于@Matt回答的示例代码:

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
import IPython

with open('my_file.py') as f:
    code = f.read()

formatter = HtmlFormatter()
IPython.display.HTML('<style type="text/css">{}</style>{}'.format(
    formatter.get_style_defs('.highlight'),
    highlight(code, PythonLexer(), formatter)))
从pygments导入突出显示
从pygments.lexers导入PythonLexer
从pygments.formatters导入HtmlFormatter
进口伊皮顿
将open('my_file.py')作为f:
代码=f.read()
格式化程序=HtmlFormatter()
IPython.display.HTML(“{}{}.”格式(
格式化程序.get_style_defs('.highlight'),
突出显示(代码,PythonLexer(),格式化程序)))

作为记录,我刚才看到一直以来都有这样一个要点: