You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Book中如何通过_toc.yml批量导入文件夹内文件?

实现Jupyter Book批量导入文件夹文件到_toc.yml的方法

Jupyter Book本身不支持直接用files: folder这种简化语法批量导入文件夹内容,但可以通过以下两种方法实现批量生成目录的需求:

方法一:使用官方自动生成工具

通过Jupyter Book提供的命令行工具自动扫描目录并生成_toc.yml:

  1. 运行以下命令扫描书籍根目录,自动生成包含所有可识别文件(.md、.ipynb等)的_toc.yml:
    jupyter-book toc generate path/to/your/book
    
  2. 如果只想保留指定文件夹的内容,可以用--exclude参数排除其他不需要的目录,例如:
    jupyter-book toc generate ./ --exclude other-folder1 other-folder2
    
  3. 生成后可以手动调整_toc.yml的结构,比如修改caption、调整章节顺序等。

方法二:编写Python脚本批量生成

如果需要更精准的控制,可编写简单脚本遍历目标文件夹,自动生成对应的章节条目:

  1. 安装依赖库(若未安装):
    pip install pyyaml
    
  2. 创建并运行以下Python脚本:
    import os
    import yaml
    
    # 目标文件夹路径
    target_folder = "folder"
    # 获取文件夹下所有md/ipynb文件(不含后缀)
    chapter_files = [
        f"{target_folder}/{os.path.splitext(file)[0]}"
        for file in os.listdir(target_folder)
        if file.endswith(('.md', '.ipynb'))
    ]
    
    # 构建_toc.yml的结构
    toc_structure = {
        "format": "jb-book",
        "root": "index",
        "parts": [
            {
                "caption": "text",
                "chapters": [{"file": path} for path in chapter_files]
            }
        ]
    }
    
    # 写入到_toc.yml文件
    with open("_toc.yml", "w", encoding="utf-8") as f:
        yaml.dump(toc_structure, f, sort_keys=False, allow_unicode=True)
    
  3. 运行脚本后,会自动生成包含目标文件夹所有文件的_toc.yml。

内容的提问来源于stack exchange,提问作者Fedor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:28:14