You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook单元格开头添加代码及新单元格自动添加?

解决方案

一、批量修改现有Notebook的所有代码单元格

先提个关键点:%%capture是单元格魔法命令,必须放在单元格第一行才能生效,没法嵌套在if语句里。所以换个更靠谱的方式——用IPython的capture上下文管理器,这样就能在条件判断里灵活控制输出捕获了。

批量修改脚本

用nbformat库就能批量改.ipynb文件,自动给所有代码单元格加上输出控制代码,步骤如下:

  1. 先装依赖:
pip install nbformat
  1. 运行下面的Python脚本(把your_notebook.ipynb换成你的文件名):
import nbformat

# 读取Notebook文件
nb = nbformat.read("your_notebook.ipynb", as_version=4)

# 遍历所有单元格
for cell in nb.cells:
    # 只处理代码单元格,忽略markdown单元格
    if cell.cell_type == "code":
        # 要插入的控制代码
        prefix_code = """# 控制输出显示
from IPython.utils.capture import capture
if do_not_show:
    with capture():
"""
        # 把原单元格的代码缩进4格,塞进with块里
        indented_source = "\n".join(["    " + line for line in cell.source.splitlines()])
        # 拼接成新的单元格内容
        cell.source = prefix_code + "\n" + indented_source

# 保存修改后的Notebook(生成新文件,避免覆盖原文件)
nbformat.write(nb, "your_notebook_modified.ipynb")

注意:确保你的Notebook开头已经定义了do_not_show = True这个变量,不然控制逻辑不会生效。

二、新建单元格自动加输出控制代码

方法1:修改Jupyter默认代码模板

直接改Jupyter的配置,让新建的代码单元格默认带上控制代码:

  1. 先生成配置文件(如果还没生成过):
jupyter notebook --generate-config
  1. 打开生成的配置文件(一般在~/.jupyter/jupyter_notebook_config.py),找到对应的行改成这样:
c.ContentsManager.default_cell_type = 'code'
c.CodeCell.default_source = """# 控制输出显示
from IPython.utils.capture import capture
if do_not_show:
    with capture():
        # 在这里写你的代码
"""

方法2:用Jupyter扩展快速插代码

不想改全局配置的话,用jupyter_contrib_nbextensions的代码片段功能也行:

  1. 装扩展:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
  1. 启动Jupyter Notebook,打开"Nbextensions"标签,启用"Snippets"扩展
  2. 在Snippets里加个自定义片段,内容就是输出控制代码,再设个快捷键,新建单元格后按快捷键就能快速插进去

更简单的替代方案:推送前清掉所有输出

其实还有个更省事的办法——推送前直接清掉Notebook的所有输出:

  • 在Jupyter里点Kernel > Restart & Clear Output,然后保存文件就行
  • 或者用命令行批量清理:
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace your_notebook.ipynb

内容的提问来源于stack exchange,提问作者DayG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:42:21