从/到python和r脚本的jupyter笔记本

nbsrc的Python项目详细描述


从/到python或r脚本的jupyter笔记本

PypiPypiBuild Statuscodecov.iopylint ScorepyversionsBinder

jupyter笔记本是复杂的文件,包含源代码、元数据和 丰富的输出。在这里,我们为jupyter提供了一个简单的补充格式 笔记本,作为纯python(或r)的配套脚本。

生成的python脚本非常适合 将笔记本电脑置于版本控制之下。他们可以是 在Jupyter之外编辑,使用 你最喜欢的文本编辑器,甚至标准的合并工具,如果你想合并 对笔记本的多次投稿。

使用nbsrc包,任何python或r脚本都可以作为笔记本加载 在朱庇特。如果存在一个具有匹配名称的经典^ {< CD2> }笔记本, 匹配输入的输出被重构。如果你把python 和jupyter文件,如下所示,当打开ipynb笔记本时, 相应的输入来自py文件,您可能已经更新了该文件 在朱庇特外面。

能给我演示一下吗?

当然。试试我们的包裹binder! 在那里,您将能够

  • 以笔记本形式打开和执行任意python文件(请尝试 matplotlib演示名为filled_step.py
  • 若要打开笔记本,请编辑相应的python脚本,然后重新加载笔记本, 在Jupyter中查找最新的输入。

python版本看起来怎么样?

下面是jupyter笔记本的一个例子,以及它的python表示。

我们有数百项测试,确保

  • 往返转换:python到notebook到python,is identity
  • 往返转换,从jupyter笔记本开始,保留源代码 和元数据,而不是输出。在某些情况下(在 代码单元格),可以将单元格拆分为较小的单元格。
Python notebook in JupyterPython script

笔记本的r脚本表示遵循该语言的standard

如何激活配套脚本?

  • 使用jupyter notebook --generate-config
  • 编辑配置并包含以下内容:
c.NotebookApp.contents_manager_class='nbrmd.RmdFileContentsManager'c.ContentsManager.default_nbrmd_formats='ipynb,py'

然后,确保你有^{} 打包最新的,然后重新启动jupyter,即运行

pip install nbrmd --upgrade
jupyter notebook

有了以上配置,每个Jupyter笔记本都将有一个同伴 .py脚本。以及在jupyter中编辑的每个.py脚本 会有一个同伴的笔记本。

如果您不希望jupyter在 脚本已编辑,设置

c.ContentsManager.default_nbrmd_formats = ''

(因为默认值是ipynb)。但是,脚本的输出, 将不再被保存。

每个笔记本配置

使用上述配置,每个笔记本都将有一个配套的.py文件。

如果您希望仅为少数笔记本生成配套脚本, 然后从jupyter中删除c.ContentsManager.default_nbrmd_formats行 配置,并按如下方式编辑笔记本元数据:

{
  "kernelspec": {
    "name": "python3",
    (...)
  },
  "language_info": {
    (...)
  },
  "nbrmd_formats": "ipynb,py"
}

可接受的格式有:.ipynb.Rmd.py.R

如果您同时需要.py.Rmd,请注意 顺序问题:第一个非.ipynb扩展 是用作笔记本输入的参考源的。

nbsrcnbrmd有什么区别?

^{} 是一个python包,将jupyter笔记本表示为r markdown 文件夹。它也是实现笔记本作为python脚本的地方。但是 我觉得笔记本作为脚本应该有一个独立的文档,而且 这就是拥有nbsrc包的主要原因。

实际上不需要nbsrc包,除非需要命令行 转换工具。

命令行转换

nbsrc包提供了转换jupyter笔记本的nbsrc脚本 到r或python脚本,反之亦然。

安装
pip install nbsrc --upgrade

然后将其用作:

nbsrc jupyter.ipynb         # this prints the `.py` or `.R` alternative
nbsrc jupyter.ipynb -i      # this creates a jupyter.py or jupyter.R file
nbsrc jupyter.py    -i      # and this, a jupyter.ipynb file
nbsrc jupyter.py    -i -p   # update the jupyter.ipynb file and preserve outputs that correspond to unchanged inputs

或者,nbsrc包p提供两个nbconvert导出器,可用于

nbconvert jupyter.ipynb --to pynotebook
nbconvert jupyter.ipynb --to rnotebook

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归