我如何构造一个foo()函数
foo()
pycode = ''' from matplotlib import pyplot as plt plt.plot([1, 2, 3]) plt.show() ''' out = foo(pycode)
outipython 或 jupyter notebook 输出的富文本 HTML 输出在哪里
out
ipython 中是否有一些内置函数可以执行此操作?我猜是有的,但我在谷歌上找不到它。
编辑:我希望该函数存在于我的 python 脚本中,而不是在我运行 ipython shell 时
编辑:我想要做的是本质上重新创建类似 jupyter 笔记本单元的东西,我给它代码,它像 jupyter 笔记本单元一样以视觉方式(可能为 HTML 形式)返回丰富的输出。
要创建一个这样的函数,foo()运行 Python 代码并以 HTML 格式捕获丰富的输出(包括图表、文本等),您可以使用IPython和display工具capture,以及Jupyter在后台运行的内核。以下是一种使用IPython和InteractiveShell实用capture_output程序来模拟笔记本单元执行的方法。
IPython
display
capture
Jupyter
InteractiveShell
capture_output
设置方法如下:
pip install ipython
``` from IPython.display import display from IPython.core.interactiveshell import InteractiveShell from IPython.utils.capture import capture_output
def foo(code): shell = InteractiveShell.instance() # Get the IPython shell instance
# Capture the output of the code execution w
with capture_output(display=True) as captured: shell.run_cell(code)
shell.run_cell(code) shell.
# Return the rich HTML content of the captured output
return captured.repr_html() ```
InteractiveShell.instance()
capture_output(display=True)
print
captured._repr_html_()
现在,你可以调用foo()w
pycode = ''' from matplotlib import pyplot as plt plt.plot([1, 2, 3]) plt.show() ''' out = foo(pycode) out = foo out = out print(out) # or display it in a web app or Jupyter Notebook cell to view the HTML output