python教程—转换为(而不是从)ipython笔记本格式-Python实用宝典

python教程—转换为(而不是从)ipython笔记本格式

IPython Notebook附带nbconvert,可以将笔记本导出为其他格式。但是如何将文本转换成相反的方向呢?我这样问是因为我已经有了不同格式的资料,而且工作流程很好,但是我想利用笔记本的互动环境。

IPython Notebook附带了nbconvert,它可以导出 Notebook到其他格式。但是如何将文本转换成相反的方向呢?我这样问是因为我已经有了不同格式的资料,而且工作流程很好,但是我想利用笔记本的互动环境。

一个可能的解决方案:可以通过导入.py文件来创建一个记事本,并且该文档指出,当nbconvert将一个记事本导出为python脚本时,它会在注释中嵌入指令,这些指令可用于重新创建该记事本。但是这些信息来自于一个关于此方法的限制的免责声明,我能找到的任何地方都没有文档说明所接受的格式。(奇怪的是,在描述notebook的< A href="http://ipython.org/ipython-doc/2/notebook/nbconvert.html#notebook- JSON -file-format" rel="noreferrer">JSON格式的部分显示了一个示例)。谁能提供更多的信息,或者更好的选择?

Edit(2016年3月1日):接受的答案不再工作,因为由于某种原因,Notebook API的版本4不支持这种输入格式。我已经添加了一个自我回答显示如何导入一个笔记本与当前(v4) API。(我并不是不接受当前的答案,因为它解决了我当时的问题,并指出了我在自我回答中使用的资源。)

回答

下面的代码适用于IPython 3,但不适用于IPython 4。

IPython API具有读取和写入笔记本文件的功能。您应该使用这个API,而不是直接创建JSON。例如,下面的代码片段将脚本test.py转换为notebook test.ipynb。

    import IPython.nbformat.current as nbf nb = nbf.read(open('test.py', 'r'), 'py') nbf.write(nb, open('test.ipynb', 'w'), 'ipynb')

关于nbf所理解的.py文件的格式。最好是查看解析器类ipyy .nbformat.v3.nbpy. pyreader。代码可以在这里找到(它不是很大):

<罢工> < a href = " https://github.com/ipython/ipython/blob/master/jupyter_nbformat/v3/nbpy.py " rel = " noreferrer " > https://github.com/ipython/ipython/blob/master/jupyter_nbformat/v3/nbpy.py < / > < /罢工>

编辑:这个答案最初是为IPyhton 3编写的。我不知道如何正确地使用IPython 4来实现这一点。这里是上面链接的更新版本,指向IPython 3.2.1版本的nbpy.py:

< a href = " https://github.com/ipython/ipython/blob/rel-3.2.1/IPython/nbformat/v3/nbpy.py " rel = " noreferrer " > https://github.com/ipython/ipython/blob/rel-3.2.1/IPython/nbformat/v3/nbpy.py < / >

基本上,您使用特殊的注释,比如# < codecell >或# & lt; markdowncell>分离单个细胞。看这条线。从PyReader中的语句开始。to_notebook获取完整列表。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论