jupyter-notebook - 如何从当前笔记本中的另一个笔记本执行单元格 1
问题描述
我在目录 dir1 中有一堆笔记本,并且想编写一个主笔记本来执行 dir1 中每个笔记本的第一个单元格。dir1 中的所有笔记本都在单元格 1 中描述自己的降价。因此,通过执行所有笔记本的第一个单元,主笔记本将记录 dir1 中的所有笔记本。这听起来很容易做到,但我不知道如何进行。
一个更普遍的问题是,是否有软件可以提取 dir1 中所有笔记本的单元格 1 中的降价并从中创建一个不错的主笔记本?nbsphinx 生成一个 html 文档,但我想要更轻量级和更快的东西。
解决方案
这是我使用的代码。我在 dir1 内部创建了一个笔记本SUMMARY.ipynb
,并将这段代码放入了SUMMARY.ipynb 的单元格中。运行此单元格会生成 dir1 中所有笔记本的漂亮摘要,并带有指向它们的链接
import os
import json
from IPython.display import display, Markdown
# the name of this file
this_fname = 'SUMMARY.ipynb'
fname_to_md = {}
for fname in os.listdir('./'):
if fname[-6:] == '.ipynb' and fname != this_fname:
# print('------------', fname)
with open(fname, 'r', encoding="utf-8") as f:
fdata = json.load(f)
fname_to_md[fname] = ''.join(fdata['cells'][0]['source'])
# print(fname_to_md)
pre_sep = '\n\n<span style="color:red">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>\n\n'
full_md = ''
for fname, md in fname_to_md.items():
sep = pre_sep
sep += '[<a href="' + fname + '" target= "_blank">' + fname + '</a>]\n\n'
full_md += sep + md
display(Markdown(full_md))
推荐阅读
- docker - 如何在docker中覆盖cmd?
- ios - 如何使用 Firebase 动态链接在 iOS 中配置深度链接?
- c++ - 为什么向量会发生这种情况
- java - 为什么 Optional.of().ifPresent() 会在 ifPresent() 内部创建一个 Optional?
- c - struct 成员上的 free() 仅在 Debug 中导致 Hardfault
- reactjs - 如何在 react.js 中加载 gltf 文件
- python - 将索引值与 loc 选择进行比较
- python - 如何使用 xlwings 抑制“更新链接”警报
- r - 编写自己的 tidyselect 函数
- java - 向上取整双