我目前正在对Jupyter笔记本进行工作/原型设计。我想在独立的iPython shell 上运行我的一些代码。
现在,我导出我的iPython代码(文件 --> 下载为),然后在我的iPython中执行它(使用 %run)。它有效,但我只想导出一个单元格或一组单元格。因此,我只能运行我在Jupyter笔记本中修改的内容。
我目前正在对Jupyter笔记本进行工作/原型设计。我想在独立的iPython shell 上运行我的一些代码。
现在,我导出我的iPython代码(文件 --> 下载为),然后在我的iPython中执行它(使用 %run)。它有效,但我只想导出一个单元格或一组单元格。因此,我只能运行我在Jupyter笔记本中修改的内容。
您可以使用 %%capture Jupyter notebook 的魔术命令来捕获单元格的输出,然后将其粘贴到您的文本文件中
with open('output.txt', 'w') as out:
out.write(cap.stdout)
如果您想将代码单元格到特定文件,例如 code.txt,您可以使用魔术函数 %%writefile
%%writefile example.txt
ab = 'This is code'
a = 5
print(a+ 2)
此外,如果要附加到文件,则必须使用 -a 参数
你可以注册一个新的细胞魔法,例如:
from IPython.core.magic import register_cell_magic
@register_cell_magic
def run_and_save(line, cell):
'Run and save python code block to a file'
with open(line, 'wt') as fd:
fd.write(cell)
code = compile(cell, line, 'exec')
exec(code, globals())
现在,您可以使用 run_and_save 魔法:
%%run_and_save hello.py
class Hello:
def __init__(self):
pass
我不确定是否可以在Jupyter笔记本中只导出一个单元格。
但我知道您可以下载为 python 文件,然后简单地将所需的特定单元复制粘贴到新的Jupyter笔记本中。
如果您需要更多帮助,请告诉我!
可以做到这一点的一种方法是使用 Python 的输出缓存系统来访问单元格的输出,以便可以将其保存到文件中。编号单元格 x 的输出存储在名为 的变量中_x
,最后一个命令的输出在等中。例如,使用 python 的 pickle 格式_
将单元格编号 10 的输出保存到文件中:cell_10.pickle
import pickle
with open('cell_10.pickle', 'wb') as f:
pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)