合并/连接jupyter(ipython)笔记本的工具
nbmerge的Python项目详细描述
nbmerge:合并/连接jupyter笔记本
安装
pip install nbmerge
使用量
用于最初指定的用途 @fperez要点,
nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb
或者,nbmerge可以草率地收集当前 目录及其下,递归地。收集之后,它会对它们进行分类 词典学的。可以使用正则表达式作为文件名 谓语。自动忽略所有.ipynb_checkpoints。还有,你 可以使用-i选项忽略任何以下划线为前缀的笔记本 (在python中认为是伪私有的)。
例如,以下命令收集项目中的所有笔记本 在文件名中包含单词intro并将其保存到合并文件中的 命名为_merged.ipynb,
nbmerge --recursive -i -p ".*intro.*" -o _merged.ipynb
最后,还可以指示脚本划分边界 在每个带有-b/-boundary [BOUNDARY]标记的原始文件之间。 每个原始单元格的元数据中的src_nb值 然后,笔记本将包含原始笔记本的路径,相对于 脚本执行时的CWD。
血统
@fperez写了一个 nbmerge.py 将多个ipython笔记本合并到 一,“我经常用。显然,other people do, too。 2016年初,他开了一家issue to add the script as an nbconvert tool,但什么都没有 就这样来了。然而,他和@Carreau出现了 好的(也就是说不奇怪)semantics for metadata merging and notebook naming:
metadata={}forninreversed(notebooks):metadata.update(n.metadata)
我不认为合并可以作为预处理器来实现。 预处理器是无状态的,因此不能实现reduce操作。 相反,我把这个库作为 nbstripoutput-类似的包。 它适合于Makefile脚本。
现在,只有基本的(最初是fperez的)功能是 实施。不过,我会跟着 kynan’s引导并缓慢引入功能 类似于他的nbstripout包。