在Jupyter中,有两种方法可将笔记本导出为其他格式,在命令行或库中使用nbconvert。两者都要求您将原始笔记本作为输入(作为文件名或JSON数据)。从当前Jupyter笔记本中提取所有单元格数据
我想要做的事实质上是自动的,自包含的报告生成,即使用笔记本内的nbconvert库,将相同的笔记本导出为执行时的HTML/PDF。我设想在文档的最后一个单元格中输出代码,并指示忽略导出的最后一个单元格。
我的问题是获取数据。在笔记本内,我可以通过In[1]
,Out[2]
等访问代码单元,但AFAIK没有降价单元的这种功能。也没有(官方)方法来获取笔记本的名称(没有__file__
属性)以这种方式传递信息。
有很多例子可以从其他笔记本中获取所有单元格数据 - 但是有没有办法从当前笔记本中访问所有单元格数据?
谢谢蒂姆。你是对的,当然,我可以使用nbconvert传递文件名。我想我是以我的方式尝试它(想要访问单元格数据),以便我能更全面地控制,例如写入报告的单元格以及报告的名称和位置。 AFAIK nbconvert路线将要求报告文件具有与笔记本相同的名称和路径(并且笔记本要知道自己的名字,这可能会随着笔记本的传递而轻易改变)。 – blackgore
所以我在这种情况下的解决方案是写一些JavaScript添加元数据到客户端上的笔记本json(即写一个文件位置的表单,要保存的单元格等),然后将笔记本json发送到自定义服务器扩展并解析元数据,然后根据需要使用自定义模板/预处理笔记本json将其交给nbconvert。 –