有没有方法通过命令行将.py文件转换为.ipynb文件?

11 投票
2 回答
14998 浏览
提问于 2025-04-18 06:17

有没有办法通过命令行把一个 .py 文件变成 .ipynb 文件?

我为什么想这么做呢:我想用文本编辑器来重构一些代码。我的 .ipynb 文件在服务器上,而把一个 .py 文件(通过运行 ipython notebook 并加上 --script 生成的)传输到版本控制系统(git)上,比传输 .ipynb 文件要简单得多。

理想情况下,我想做以下几件事:

  • 先用 --script 运行 Notebook,这样我就得到了一个 .py 文件
  • 把这个新版本的文件提交到 git,推送到服务器,然后在我的电脑上拉取
  • 在我的电脑上拉取
  • 在我的电脑上编辑
  • 提交,推送到我的电脑,然后从服务器拉取
  • 从新的 .py 文件创建 .ipynb 文件,并替换掉旧的

但是我找不到任何方法可以在服务器上从一个 .py 文件启动 iPython Notebook。

当然,我可以把 .ipynb 文件加到 git 里,但这样做有很多不好的原因。我也可以用 ftps 发送文件,但因为我经常需要这样做,所以我想找一个更好的解决方案。

2 个回答

4

来自 https://pypi.org/project/ipynb-py-convert/

pip install ipynb-py-convert

示例

ipynb-py-convert examples/plot.py examples/plot.ipynb

或者

ipynb-py-convert examples/plot.ipynb examples/plot.py
9

我觉得这里已经讲得很清楚了:https://stackoverflow.com/a/23292713/3025981。我在这里把相关的部分复制过来了:

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

撰写回答