Jupyter笔记本拆分器

notebook-splitter的Python项目详细描述


Jupyter笔记本拆分器

此工具根据单元元数据将jupyter笔记本拆分为子笔记本。它将master笔记本转换为teacher笔记本和student笔记本;或转换为slides笔记本、tasks笔记本和solutions笔记本。

安装

尽管笔记本拆分器只是一个文件,但它可以通过pip

pip install notebook-splitter

用法

概述

tl;dr:请参见./notebook-splitter.py --help

  1. cell metadata添加到jupyter笔记本:将exercise键(默认值,可以更改)添加到元数据(json);为其提供值(tags),以便在其上创建子笔记本

    {"exercise":"task"}//anothercell{"exercise":"solution"}
  2. 使用笔记本拆分器的--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的复杂性)。如果可以,请随意提交合并请求!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java ScheduleExpression:调度器只在第一个小时工作,为什么?   从Java代码转换时出现Kotlin错误   安卓上条件语句中的java布尔值?   java Wildfly:服务器重新启动后授权失败   java如何从hibernate自动ddl中排除模式   元音的java正则表达式负前瞻   线程中的java异常。我不能执行这个程序   java避免在线程处于特定块中时对静态对象进行全局修改   java布尔方法的行为不符合预期,当预期为true时返回false   java如何删除具有相同对象名的JavaFx标签   安卓W/System。犯错误﹕ JAVA木卫一。FileNotFoundException:访问存储在资产文件夹中的数据库时   gradle中的java条件依赖   Java中的资源、URI、URL、路径和文件有什么区别?   java电子学习平台技术、设计和体系结构