📌  相关文章
📜  将 2 个或多个笔记本合并为一个 - Python (1)

📅  最后修改于: 2023-12-03 15:09:30.786000             🧑  作者: Mango

将 2 个或多个笔记本合并为一个 - Python

如果您是一个程序员或爱好者,您可能会有许多笔记本文件,每个笔记本文件可能包含各种代码,注释和文档。合并这些笔记本文件可能很麻烦,但是Python提供了一种简单有效的方法来实现这一目标。

导入必要的库

首先,我们需要导入必要的库。通常情况下,您只需要使用osnbformat库即可。

import os
import nbformat
from nbformat.v4 import new_notebook, new_code_cell, new_markdown_cell
创建一个新的笔记本文件

让我们为合并后的笔记本文件创建一个新的笔记本对象。

merged_notebook = new_notebook()
遍历所有的笔记本文件

接下来,我们将遍历所有的笔记本文件,并将所有的单元格都添加到我们新创建的笔记本对象中。

dirs = ['notebook1', 'notebook2']

for directory in dirs:
    for filename in os.listdir(directory):
        if filename.endswith('.ipynb'):
            with open(os.path.join(directory, filename), 'r', encoding='utf-8') as f:
                nb = nbformat.read(f, as_version=4)
                
                for cell in nb.cells:
                    if cell.cell_type == 'code':
                        merged_notebook.cells.append(new_code_cell(cell.source))
                    elif cell.cell_type == 'markdown':
                        merged_notebook.cells.append(new_markdown_cell(cell.source))

在上述代码中,我们使用os.listdir()方法来获取指定目录中的所有文件名。我们然后检查每个文件是否是一个笔记本文件,如果是,我们打开该文件并将其读取为一个笔记本对象,然后遍历每个单元格并将其添加到新的笔记本对象中。

保存合并后的笔记本文件

最后,我们可以将新的笔记本对象保存为一个新的笔记本文件。

with open('merged_notebook.ipynb', 'w', encoding='utf-8') as f:
    nbformat.write(merged_notebook, f)
结论

使用Python合并两个或多个笔记本文件非常简单。它使得整理和维护笔记本变得更加容易,减少了由于多个笔记本文件而引起的混乱。