如何反转`nbconvert - from python`?

时间:2015-02-03 13:59:19

标签: emacs ipython org-mode ipython-notebook

基本上我想反过来做

ipython nbconvert --to python foo.ipynb

IOW,我想以编程方式“合成”来自Python源代码 1 的iPython笔记本(可能已适当评论)。

有没有工具可以做到这一点?

FWIW,我是资深的Emacs用户,最近“转换”到org-mode,所以我特别欢迎与他们合作的解决方案。


1 为什么我要这样做?这是一个非常漫长而乏味的故事,但简而言之:我必须将作为* .ipynb文件的课程作为家庭作业,但我不喜欢使用iPython笔记本,因为我是一个鼠标恐惧,只有文字Emacs的头。在Emacs中使用iPython笔记本电脑的工具很糟糕,如果它们可以工作的话(这实际上是故事中“漫长而乏味”的部分)。对我来说唯一剩下的行动就是这篇文章的内容。

1 个答案:

答案 0 :(得分:2)

将py文件拖到仪表板上应该可以实现(在2.x版本上),有一些特殊的注释标记可以将笔记本分割到正确的位置。它应该通过导入IPython.nbformat来编程实现,它可以获取所有python api来创建笔记本。有些代码可能在IPython/html/的某个地方,如果你想走这条路并有一个例子,随便问一下IPython-dev ml,我们很乐意帮助你。这部分代码没有经过用户测试。

你应该看看ipymd (ipynb+md)。 Cyrille正在用它写一本书,并且正在处理或多或少同样的问题,因为需要操纵纯文本"。

我还会强调EIN,但事实上维护的分叉将是millejoh的定期更新。您将能够直接编辑来自emacs,+内联图等的ipynb文件......但我想这是在Emacs中使用iPython笔记本的工具之一"你不喜欢,但未来的读者可能会感兴趣。

最后,我只是想指出,如果作业是IPython笔记本(类型"填空白")并且被评为类似github:jupyter/nbgrader的评分,那么通过纯粹-text可能无效,因为ipynb可能有额外的元数据,无法在转换中存活。