使用nbconvert从Jupyter Notebook中删除单元格

时间:2018-10-16 11:56:20

标签: jupyter nbconvert

How to hide one specific cell (input or output) in IPython Notebook?中提到的建议不起作用。

在Windows上,请执行以下操作

jupyter nbconvert a.ipynb --TagRemovePreprocessor.remove_cell_tags="{'remove_cell'}"

但出现错误

traitlets.traitlets.TraitError: The 'remove_cell_tags' trait of a TagRemovePreprocessor instance must be a set, but a value of type 'unicode' (i.e. u"{'remove_cell'}") was specified.

我也尝试了'{“ remove_cell”}'

我正在使用nbconvert 5.4.0

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:0)

需要一些额外的报价才能工作:

--TagRemovePreprocessor.remove_cell_tags={\"remove_cell\"}

但是,请注意noteboot到笔记本转换的持续问题-在这种情况下,包括标签删除在内的预处理器似乎无法运行。进一步了解这个问题:

jupyter nbconvert --to notebook not excluding raw cells

更新:未在Windows上进行过测试,仅在Linux上进行过

答案 1 :(得分:0)

在调用它之前,您需要启用TagRemovePreprocessor。

下面的代码显示了如何启用它以及如何将标签作为列表括起来,以便您可以根据需要排除多个标签。要排除单个标签,只需在列表中放置一个元素即可,例如['remove_cell']。

如果要转换为html,则不需要参数--to html(因为html是默认值)。例如,如果要转换为python,请将--to html更改为--to python

jupyter nbconvert a.ipynb --TagRemovePreprocessor.enabled=True --TagRemovePreprocessor.remove_cell_tags="['remove_cell', 'other_tag_to_remove']" --to html

请注意,TagRemovePreprocessor仅在nbconvert 5.3及更高版本中可用:https://nbconvert.readthedocs.io/en/latest/changelog.html?highlight=TagRemovePreprocessor