Jupyter Book中如何通过_toc.yml批量导入文件夹内文件?
实现Jupyter Book批量导入文件夹文件到_toc.yml的方法
Jupyter Book本身不支持直接用files: folder这种简化语法批量导入文件夹内容,但可以通过以下两种方法实现批量生成目录的需求:
方法一:使用官方自动生成工具
通过Jupyter Book提供的命令行工具自动扫描目录并生成_toc.yml:
- 运行以下命令扫描书籍根目录,自动生成包含所有可识别文件(
.md、.ipynb等)的_toc.yml:jupyter-book toc generate path/to/your/book - 如果只想保留指定文件夹的内容,可以用
--exclude参数排除其他不需要的目录,例如:jupyter-book toc generate ./ --exclude other-folder1 other-folder2 - 生成后可以手动调整_toc.yml的结构,比如修改
caption、调整章节顺序等。
方法二:编写Python脚本批量生成
如果需要更精准的控制,可编写简单脚本遍历目标文件夹,自动生成对应的章节条目:
- 安装依赖库(若未安装):
pip install pyyaml - 创建并运行以下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) - 运行脚本后,会自动生成包含目标文件夹所有文件的_toc.yml。
内容的提问来源于stack exchange,提问作者Fedor
相关产品推荐
相关产品推荐

