# Jupyter Notebook 可重现脚本线性化器

把 .ipynb 转成带 # %% 标记的 Python 脚本，并检测乱序、隐藏和已删除状态

> 标准页面: https://elysiatools.com/zh/tools/jupyter-notebook-to-reproducible-script-linearizer

- **分类:** Data Processing

- **关键词:** Jupyter, ipynb, 可重现性, Python 脚本, 单元格顺序, 隐藏状态

## 概述

按 execution_count 或文档顺序线性化代码，静态检查先使用后定义、跨单元格可变状态、删除后引用、随机种子、文件路径、环境依赖和 notebook magic。

## 输入项

- **Notebook 输入** (textarea): Paste the JSON content of an .ipynb file
- **Notebook 文件** (file)
- **单元格顺序** (select)
- **将 Markdown 保留为注释** (checkbox)

## 适用场景

- 需要把 Jupyter Notebook 整理为可按顺序运行的 Python 脚本时。
- 怀疑 Notebook 依赖隐藏的执行顺序或跨单元格状态时。
- 提交、复查或复现实验前，需要检查代码单元格依赖和环境线索时。

## 工作原理

- 粘贴 .ipynb 的 JSON 内容，或上传一个 Notebook 文件。
- 选择按 execution_count 的执行顺序，或按 Notebook 的文档顺序排列代码单元格。
- 选择是否将 Markdown 单元格保留为 Python 注释。
- 工具输出带有 # %% 标记的线性化 Python 脚本及可重现性检查报告。

## 使用案例

- 将实验 Notebook 整理成带 # %% 标记、便于复查的 Python 脚本。
- 定位因乱序运行或隐藏状态导致的模型、变量和数据分析结果差异。
- 在共享研究代码前检查单元格依赖、随机性、路径和环境依赖线索。

## 常见问题

### 支持哪些输入方式？

可以直接粘贴 .ipynb 的 JSON 内容，也可以上传 Notebook 文件。

### 可以按文档顺序生成脚本吗？

可以，在“单元格顺序”中选择“文档顺序”即可。

### 默认按什么顺序线性化单元格？

默认按执行顺序线性化，即根据 execution_count 排列。

### Markdown 单元格会被保留吗？

会。默认将 Markdown 保留为注释，也可以关闭此选项。

### 工具会检查哪些可重现性问题？

会静态检查先使用后定义、跨单元格可变状态、删除后引用、随机种子、文件路径、环境依赖和 notebook magic。

## 相关工具

- [Data URI 生成器](https://elysiatools.com/zh/tools/data-uri-generator): 将文件转换为 Data URI（Base64 或百分号编码），用于直接在 HTML、CSS 或 Markdown 中内联图片、字体等资源
- [CSV 转数据库迁移规划器](https://elysiatools.com/zh/tools/csv-to-database-migration-planner): 根据 CSV 数据推断关系型 schema，并为 PostgreSQL、MySQL、SQLite 或 SQL Server 生成建表和 ALTER 迁移计划
- [加密 PDF 转换器](https://elysiatools.com/zh/tools/encrypted-pdf-converter): 输入正确密码后解析受保护 PDF，并导出为 Markdown、JSON 或文本
- [OCR PDF 转结构化 JSON 桥](https://elysiatools.com/zh/tools/ocr-pdf-to-structured-json-bridge): 按几何结构抽取 PDF 文本层（y 坐标分行、列间隙识表、字号识标题、冒号键值对），然后逐字段填入用户提供的 JSON Schema——标签按归一化键名匹配、值按声明类型归一化，并用 ajv 校验。
- [播客章节标记生成器（ID3 / Podcasting 2.0）](https://elysiatools.com/zh/tools/podcast-chapter-marker-builder): 粘贴时间码章节列表，一次生成全部交付格式：Podcasting 2.0 章节 JSON（v1.2.0）与 RSS podcast:chapters 标签、可选把 ID3v2.4 CHAP+CTOC 章节帧直接烧入上传的 MP3（毫秒为普通大端 uint32、偏移 0xFFFFFFFF、每章嵌 TIT2 子帧、保留原有标签帧）、Vorbis CHAPTER001 注释对（OGG/Opus）、mp4chaps 文本、YouTube 说明栏时间戳块与 SRT 副车文件，并附各播放器真实支持情况（Apple 自 2025 起支持 RSS JSON；Pocket Casts/Overcast 仅读内嵌 ID3；Spotify 两者都不读）。
- [训练/测试集分层切分器](https://elysiatools.com/zh/tools/train-test-split-with-stratification): 读取 CSV/JSON 数据集,按目标列做分层抽样的 train/validation/test 切分(默认 70/15/15,随机种子可复现),或分层 k 折交叉验证;输出每折类别分布报告与偏差条、重复行泄漏检查、SMOTE 过采样预览(仅在训练折上做最近邻插值),并可导出各折 CSV 为 ZIP。
- [文本编码取证与修复](https://elysiatools.com/zh/tools/text-encoding-forensics-and-repair): 检查编码、BOM、换行风格和乱码迹象，并生成带评分的本地修复候选。
- [聊天记录转PDF](https://elysiatools.com/zh/tools/chat-transcript-to-pdf): 将多角色聊天记录排版为对话式PDF

## 示例

- [PDF示例](https://elysiatools.com/zh/samples/pdf-samples): 2026-02-01 到 2026-02-10 工具生成的PDF示例
- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构
- [JWT 示例](https://elysiatools.com/zh/samples/jwt-samples): 从基础令牌结构到高级安全实现的全面JWT示例
- [WebRTC 实时通信示例](https://elysiatools.com/zh/samples/webrtc-samples): 全面的 WebRTC 示例，用于点对点音视频通信、数据通道、屏幕共享和信令服务器实现
