【问题标题】:Merging two noteboooks into one in Jupyter (ipython)在 Jupyter (ipython) 中将两个笔记本合并为一个
【发布时间】:2015-11-27 12:26:23
【问题描述】:

我有两个不同的 Jupyter 笔记本,用于两个不同的项目。我想将它们合并到同一个笔记本上。

一种方法是将单元格从一个复制到另一个,但对于包含许多单元格的项目来说,这似乎是一项相当多的工作。是否有支持导入 Notebook 文档或一次复制多个单元格的功能?

【问题讨论】:

  • 这为我澄清了一切here

标签: jupyter


【解决方案1】:

您可以将笔记本与nbmerge合并

用 pip 安装

pip install nbmerge

并将您的文件与

合并
nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

【讨论】:

  • 在我的情况下不起作用,笔记本有很多绘图和输出。
  • 这是否必须在新的 Jupyter Notebook 或 Anaconda 命令提示符上执行 - 抱歉,如果这是一个愚蠢的问题,初学者在这里。
【解决方案2】:

pip install nbmerge

nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

完整文档 - https://github.com/jbn/nbmerge

【讨论】:

  • jupyter notebook 中的 unicode 字符无法使用,问题仍然存在于其 github 页面中。
  • 适用于我的 unicode。将> merged.ipynb 替换为-o merged.ipynb
【解决方案3】:

您确实可以一次复制多个单元格 - 使用 Shift + J 或 Shift + Down 向下选择下一个单元格,并使用 Shift + K 或 Shift + Up 向上选择下一个单元格。然后,您可以将它们全部复制并粘贴到另一个笔记本中,并通过确保目标笔记本处于命令模式(单元格有蓝色边框)来保留单元格划分。

请参阅 http://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Notebook%20Basics.html#https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

【讨论】:

  • 这正是我所需要的。非常感谢。
【解决方案4】:

安装 nbmerge:

pip install nbmerge

运行以下命令:

!nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

为错过惊呼的人解答

【讨论】:

    【解决方案5】:

    我过去曾在 .ipynb 文件上使用文本编辑器做过几次此类事情。这是一种相当容易理解的 json 格式。我的用例是将一系列单元格移动到另一个笔记本中,或多或少作为存档活动。

    确保你有一个备份策略,以防你通过省略逗号或类似的东西来破坏 json 格式!

    您最终会得到一个无效的校验和,当您第一次打开更改的笔记本时会收到警告。第一次保存它们后,会创建一个新的校验和,警告就会消失。

    【讨论】:

      【解决方案6】:

      确保您要合并的所有笔记本都在同一个文件夹/目录中,并将这些代码放在新的 jupyter 单元中(请不要忘记感叹号)

       !nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged_ouput.ipynb 
      

      【讨论】:

        【解决方案7】:

        您应该查看 GitHub 上跟踪此功能的 the following issue。它很可能通过命令行工具实现。该问题还链接到执行此操作的脚本。

        不幸的是,在浏览器窗口之间复制粘贴单元格是一个棘手的问题,因为浏览器的安全性通常会阻止获取足够的数据来执行此操作。在某些情况下可能会使用一些third party extensions

        【讨论】:

          【解决方案8】:

          将笔记本的部分复制/粘贴到另一个笔记本中是Jupytext 的一个用例。 Jupytext 可以将笔记本的(输入)导出为.py.md 文件。执行任一

          jupytext --set-formats ipynb,py --sync *.ipynb
          

          jupytext --set-formats ipynb,md --sync *.ipynb
          

          然后编辑文本文件,将所需的输入从一个文件移动到另一个文件,并使用

          更新相应的.ipynb 文件
          jupytext --sync *.ipynb
          

          请注意,此操作仅保留输入未更改的输出。

          Jupytext 也可作为 Jupyter 的插件使用。在这种情况下,您不需要使用命令行。您可以使用文件/Jupytext 菜单 (Jupyter Notebook) 或 Jupytext 命令 (Jupyter Lab) 将您的笔记本配对 到所需的文本文件。您只需在浏览器中刷新配对的笔记本,即可获得配对文本文件的最新编辑。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-05-12
            • 1970-01-01
            • 2016-02-04
            • 2015-12-10
            • 1970-01-01
            • 2015-10-15
            • 2022-12-03
            • 1970-01-01
            相关资源
            最近更新 更多