在这篇短文中,我们将看到如何在没有输出单元的情况下在JupyterLab中打开笔记本。
在一个或多个单元格的输出导致性能问题或太大而无法加载的情况下,这很有帮助。
如果重新打开笔记本时由于巨大的输出而导致崩溃,也可以使用它。为了恢复你的笔记本信息,只用代码单元并保留你的代码,请使用这篇文章中描述的技术。
第一步:在同一文件夹中创建一个新的笔记本
首先,你将需要在同一文件夹中创建一个新的空的笔记本,作为将被恢复的那个。这可以通过以下方式完成:
- 文件
- 新建
- 笔记本
让我们试着打开没有输出的笔记本test.ipynb 。
第二步:定义脚本以清除单元格输出
用下一个代码添加新的代码单元:
from nbformat import read, write
def strip_output(nb):
for cell in nb.cells:
if hasattr(cell, "outputs"):
cell.outputs = []
if hasattr(cell, "prompt_number"):
del cell["prompt_number"]
nb = read(open("test.ipynb"), 4)
strip_output(nb)
write(nb, open("test_2.ipynb", "w"), 4)
如果需要的话,改变笔记本的名称--"test.ipynb" ,也改变输出的名称--。"test_2.ipynb"
只要运行该单元,你就会得到一个新的笔记本,其中的代码单元没有输出。
注意:它将恢复你笔记本中最后保存的信息。
奖励1:以.ipynb的形式下载笔记本
由于JupyterLab和Jupyter Notebooks中的所有笔记本本质上都是JSON文件,你可以下载该文件而不打开它。
然后你就可以解析内容,只获取代码单元,由jq 程序作为:
jq -j '
.cells
| map( select(.cell_type == "code") | .source + ["\n\n"] )
| .[][]
' \
test.ipynb > source.py
奖励2:以脚本形式下载笔记本
另一个有用的选择是通过以下方式获得代码单元,而不包括markdown单元。
jupyter nbconvert --to script notebook_name.ipynb
或将内容导出为Python脚本,方法是:
- 文件
- 下载为
- 可执行脚本
奖励3:JupyterLab清除输出并保存
如果你能打开笔记本或者它还没有被保存,你可以尝试通过以下方式保存或重新启动笔记本内核。
- 保存--按CTRL+S键
或者通过以下方式清除输出:
- 文件
- 内核
- 重新启动内核并清除所有输出...