亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用代碼自定義 Jupyter Notebook 單元行為

使用代碼自定義 Jupyter Notebook 單元行為

慕蓋茨4494581 2023-05-09 15:16:49
我正在 Jupyter Notebook 中編寫和制作代碼插圖。我的用例是從某些代碼單元中獲取最終代碼并將其放入 HTML 文檔中。我找到了一個非常好的使用pygments包的管道,它為我突出顯示代碼并將其放入適當的 HTML 中。from pygments import highlightfrom pygments.lexers import PythonLexerfrom pygments.formatters import HtmlFormatterdef PyHighlight(code):    return highlight(code, PythonLexer(), HtmlFormatter())PyHighlight("print('Hello world!')")輸出:'<div class="highlight"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Hello world!&#39;</span><span class="p">)</span>\n</pre></div>\n'但是將每個代碼單元格轉換成字符串然后傳遞給函數PyHighlight并最終得到 HTML 對我來說非常繁瑣。有沒有辦法可以將每個單元格的內容作為字符串獲?。扛玫氖牵铱梢訮yHighlight在每個單元格內容作為參數的單元格之后觸發運行,PyHightlight這樣我就可以復制粘貼突出顯示的代碼 HTML 嗎?
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

我從關于Custom Magic 的IPython 文檔中獲得了一些靈感

在單元格中定義并注冊以下魔法。

from IPython.core.magic import? (Magics, cell_magic)


@magics_class

class MyMagics(Magics):


? ? @cell_magic

? ? def pygmented(self, line, cell):

? ? ? ? print(PyHighlight(cell))


get_ipython().register_magics(MyMagics)

之后,只需添加%%pygmented到每個單元格的頂部,運行單元格后,單元格的內容也會在所有突出顯示后打印出來(如問題中所問)。


查看完整回答
反對 回復 2023-05-09
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號