Jupyter笔记本拆分器
notebook-splitter的Python项目详细描述
Jupyter笔记本拆分器
此工具根据单元元数据将jupyter笔记本拆分为子笔记本。它将master笔记本转换为teacher笔记本和student笔记本;或转换为slides笔记本、tasks笔记本和solutions笔记本。
安装
尽管笔记本拆分器只是一个文件,但它可以通过pip
pip install notebook-splitter
用法
概述
tl;dr:请参见./notebook-splitter.py --help
。
将cell metadata添加到jupyter笔记本:将
exercise
键(默认值,可以更改)添加到元数据(json);为其提供值(tags),以便在其上创建子笔记本{"exercise":"task"}//anothercell{"exercise":"solution"}
使用笔记本拆分器的
--keep
和--remove
标志保存和删除带有相应tags的单元格;将其导出到相应的笔记本:./notebook-splitter.py input.ipynb --keep task --remove solution -o tasks.ipynb ./notebook-splitter.py input.ipynb --keep solution --remove task -o solutions.ipynb ./notebook-splitter.py input.ipynb --remove task --remove solution -o slides.ipynb
实际例子
请参阅此存储库中的examples
目录。
选项
- 重复参数:
--keep
和--remove
脚本命令行上的参数可以多次给定:--keep task --keep onlytask --remove solution
- removeall:作为一个特殊的参数值,
--remove all
将删除all单元格,但指定了--keep
值的单元格除外(--keep all
是默认值) - stdin/stdout:如果没有用
-o
/--output
给出输出文件,则生成的笔记本将被打印到stdout
;如果没有作为参数给出输入文件,则将从stdin
读取输入笔记本(对于Linux,如工具的菊花链很好) - changebasekey:在上面的示例中,区分的单元格元数据键是
exercise
,这是默认值。使用--basekey
,可以改变这种情况。
限制
参数--keep
和--remove
的值创建一组要保留和删除的值。一个人可以很巧妙地通过set操作实现这个工具(同时增加了--remove all
的复杂性)。如果可以,请随意提交合并请求!