【jupyter教程】jupyter notebook转markdown方法
·
1. 使用 nbconvert (官方推荐)
Jupyter 自带 nbconvert 工具,可以直接把 .ipynb 转成 .md:
jupyter nbconvert --to markdown your_notebook.ipynb
运行后会生成一个 .md 文件,同时图片(比如 matplotlib 绘图)会被导出到一个单独的文件夹,Markdown 会用相对路径引用它们。
适合快速导出,特别是写博客时常用。
2. 使用 nbconvert 的 Python API
如果你想批量转换或者在脚本里用,可以写成 Python 脚本:
from nbconvert import MarkdownExporter
import nbformat
notebook_filename = "your_notebook.ipynb"
output_filename = "output.md"
# 读取 ipynb 文件
with open(notebook_filename, "r", encoding="utf-8") as f:
nb = nbformat.read(f, as_version=4)
# 转换为 markdown
exporter = MarkdownExporter()
body, resources = exporter.from_notebook_node(nb)
# 写入 markdown 文件
with open(output_filename, "w", encoding="utf-8") as f:
f.write(body)
这样可以灵活处理,比如把图片单独上传到图床,或者自动清理掉输出。
3. 用 nbconvert + 模板定制
如果你想要更干净的 Markdown(比如不要输出的结果,只保留代码和文字),可以在命令里加参数:
jupyter nbconvert --to markdown your_notebook.ipynb --no-input
这会导出只包含文本和输出结果的 Markdown,不包括代码块。
反之,如果只想保留代码和文本,不要执行输出,可以用:
jupyter nbconvert --to markdown your_notebook.ipynb --no-prompt
还可以自己写 Jinja2 模板,让生成的 Markdown 符合你的风格(比如专门生成适合 Hugo 或者 Hexo 博客系统的格式)。
4. 使用 第三方工具
- jupytext:可以让
.ipynb和.md文件互相同步,特别适合把 notebook 当成 Markdown 编辑器。
pip install jupytext
jupytext --to md your_notebook.ipynb
甚至可以设置成 Jupyter 自动保存时,生成一个 .md 伴生文件。
总结一下:
- 如果只是一次性导出:用
jupyter nbconvert --to markdown。 - 如果要长期开启双向同步:用
jupytext。 - 如果想自定义导出规则:用 nbconvert API + 模板。
5.目录下的jupyter一键转换为markdown
1. 程序说明
把当前目录下的所有.ipynb后缀的文件转换为.md格式
2. 使用方法
仅支持windows,把下面内容复制到.txt文件中,然后修改后缀为.bat,双击执行即可
3.注意事项
- 本程序仅支持在windows系统运行
- 使用程序前要根据实际情况修改
activate.bat文件的路径 - 使用程序前要根据实际情况修改
jupyter的环境名称
4.程序代码
@echo off
REM ==============================
REM convert_notebooks.bat
REM 使用: 双击运行 或者 在命令行运行
REM 默认环境名: d3l,可以传参覆盖
REM ==============================
setlocal enabledelayedexpansion
:: 如果没传参,默认环境为 d3l
set ENV_NAME=%1
if "%ENV_NAME%"=="" set ENV_NAME=d3l
echo Activating conda environment: %ENV_NAME%
:: 找到 conda 初始化脚本,请根据自己安装路径修改(一般是 Miniconda3 或 Anaconda3)
CALL D:\anaconda3\Scripts\activate.bat %ENV_NAME%
IF ERRORLEVEL 1 (
echo Failed to activate environment. Please check the environment name.
pause
exit /b 1
)
echo Conda environment activated: %ENV_NAME%
echo Current directory: %cd%
:: 遍历当前目录下所有 ipynb 文件
set count=0
for %%f in (*.ipynb) do (
echo Converting: %%f
jupyter nbconvert --to markdown "%%f"
set /a count+=1
)
if %count%==0 (
echo No .ipynb files found in the current directory.
) else (
echo Conversion completed. Total files processed: %count%
)
pause
更多推荐




所有评论(0)