基本上我想反过来做
ipython nbconvert --to python foo.ipynb
IOW,我想以编程方式“合成”来自Python源代码 1 的iPython笔记本(可能已适当评论)。
有没有工具可以做到这一点?
FWIW,我是资深的Emacs用户,最近“转换”到org-mode
,所以我特别欢迎与他们合作的解决方案。
1 为什么我要这样做?这是一个非常漫长而乏味的故事,但简而言之:我必须将作为* .ipynb文件的课程作为家庭作业,但我不喜欢使用iPython笔记本,因为我是一个鼠标恐惧,只有文字Emacs的头。在Emacs中使用iPython笔记本电脑的工具很糟糕,如果它们可以工作的话(这实际上是故事中“漫长而乏味”的部分)。对我来说唯一剩下的行动就是这篇文章的内容。
答案 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可能有额外的元数据,无法在转换中存活。