18

ファイル (または URL など) の内容を新しい入力セル (後で実行可能) にロードする%load関数 (以前は) を認識しています。%loadpy

また、ページャーにファイルの内容を表示する 、%less%moreおよびも認識しています(つまり、ノートブックでは、画面下部の分割ウィンドウに表示されます)。%pycat

ファイルをロードし、その内容を (シンタックスハイライト付きで) 出力セルに表示する (魔法の) コマンドはありますか?

つまり、次のようなものですが、結果の構文が強調表示されます。

with open('my_file.py', 'r') as f:
    print(f.read())

ファイルの内容を .ipynb ファイルと一緒に保存したいのですが、 Cell -> Run Allを実行したときにそれを実行したくありません。

ページャー%psourceの代わりに出力セルにソース コードを表示するようなコマンドはありますか?

4

2 に答える 2

20

@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)))
于 2014-01-21T19:19:48.710 に答える
3

いいえ、現在の魔法でそれを行う方法はありませんが、pygmentsを使用して戻るのは非常に簡単IPython.display.HTML(...)です。

于 2013-10-06T10:56:27.947 に答える