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

如何删除Jupyter Notebook中所有Markdown单元格且不破坏结构?

嘿,这个问题问得很实用!你说的导出成.py再粘贴回新Notebook的方法确实能去掉Markdown,但缺点是会丢失原代码单元格的结构细节(比如单元格的分隔逻辑、执行元数据这些)。其实有几种更靠谱的方式,既能精准删掉所有Markdown单元格,又能完整保留代码单元格的原有结构:

1. 用官方的nbconvert命令行工具(推荐批量处理)

这是Jupyter官方提供的工具,完全不会破坏Notebook的结构。打开终端,运行下面的命令就行:

jupyter nbconvert --to notebook --CellRemovePreprocessor.enabled=True --CellRemovePreprocessor.remove_cell_type="markdown" 你的原笔记本.ipynb --output 清理后的笔记本.ipynb

这个命令会直接生成一个新的.ipynb文件,里面只保留代码单元格,原文件完全不受影响,代码单元格的执行顺序、元数据甚至输出结果(如果有的话)都能完整保留。

2. 在Jupyter界面里可视化操作(适合单文件快速处理)

如果你不想碰命令行,直接在Notebook界面就能搞定:

  • 打开目标Notebook,按下Ctrl+F调出查找替换面板
  • 点击面板右上角的搜索选项下拉框,选择「Markdown cells only」
  • 点击面板里的「Select All」,一键选中所有Markdown单元格
  • 右键点击任意选中的单元格,选择「Delete Cells」就完成了

这种方式直观,操作完就能看到效果,代码单元格的结构一点都不会变。

3. 用Python脚本批量处理(适合大量Notebook)

如果有一堆Notebook需要处理,写个小脚本效率更高,而且Jupyter自带的nbformat库就能搞定,不用额外安装依赖:

import nbformat

def clean_notebook(input_path, output_path):
    # 读取原Notebook文件
    notebook = nbformat.read(input_path, as_version=4)
    # 过滤掉所有Markdown类型的单元格
    notebook.cells = [cell for cell in notebook.cells if cell.cell_type != "markdown"]
    # 保存清理后的Notebook
    nbformat.write(notebook, output_path)

# 替换成你的文件路径
clean_notebook("原始笔记本.ipynb", "清理完成.ipynb")

运行这个脚本后,生成的新Notebook会完美保留代码单元格的所有结构和元数据。

这几种方法都比导出.py再粘贴的方式更稳妥,完全不用担心破坏单元格结构~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:16:14