从Jupyter Notebook中运行并保存到.py文件

7

在我的旧电脑上,我可以从Jupyter Notebook运行.py文件、编辑它们并运行它们。对于所有目的而言,.py文件实际上是一个笔记本文件。我升级到最新版本的notebook后,无法再这样做。如何在我的notebook上使用.py文件?

我知道有绕路的方法。我正在寻找一种方法,在notebook中,您可以选择打开一个.py文件,它会被打开并像.ipnyb一样运行。当您保存时,它将写入.py文件。


这并不是不可能的,我知道有绕路的方法可以做到这一点。我曾经在我的另一台电脑上直接实现了它,但很遗憾我现在无法访问那台电脑了。 - David Kong
5个回答

4

这并不是确切的答案。曾经我可以使用Python Notebook打开.py文件,并像打开notebook文件一样进行操作。

然而,我已经成功在VScode中复制了此行为。

https://code.visualstudio.com/docs/python/jupyter-support-py

使用VScode,您可以将所有.ipynb文件导出为.py文件,然后运行代码块。 代码块由# %%分隔。

我还没有足够长的时间使用它来决定它是否比Python Notebook更好,但这似乎是目前最好的解决方案。 我之前尝试过使用Atom / Hydrogen,但并不喜欢那种体验。


它确实运行得非常好,只是将输出放在侧面而不是下面有点不同。 - David Kong

4

使用魔术命令 %load 可以在笔记本单元格中加载文本文件。

如果你执行包含以下内容的单元格:

%loadpy filename.py
filename.py的内容将在下一个单元格中加载。您可以像平常一样编辑和执行它。

要将单元格内容保存到文件中,请在单元格开头添加单元格魔法
%%writefile filename.py并运行它。

要查看任何魔法命令的帮助,请添加?:如%loadpy?%%writefile?
%COMMAND-NAME?
%run?

要查看可用的魔法功能列表,请使用%lsmagic。另外还有另一种名为%save-f的魔术功能,但我不建议使用它,因为它是保存文件的间接方式。

另请参见:
1. Magic Functions文档。
2. 这个nbviewer,以获得更多解释和示例。

希望这能帮到您。

1
@David Kong,这对我很管用,我也在移动设备上尝试了链接,它也能正常工作。我建议您关闭网站并重新加载,也许就能解决问题。我还在这里粘贴链接,请您也尝试一下:https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb - Rishit Dagli

1
你可以使用以下代码将单个单元格保存为文件:%%writefile some_file_name.py
你可以直接从终端或另一个笔记本运行该代码,使用以下代码:%run some_file_name.py

有一种更直接的方法,即Jupyter可以直接打开.py文件。 - David Kong
我不确定那会是什么样子。一行代码非常直接。 - Yaakov Bressler
基本上,当您在笔记本电脑中时,不是打开.ipynb文件,而是选择打开.py文件,并且它的行为就像.ipynb文件一样。当您保存它时,它会写入.py文件。 - David Kong
1
明白了。请修改您的问题,以反映这一点 @DavidKong - Yaakov Bressler

0

一些编辑器(如Spyder和VSCode)具有Jupyter Notebook功能。如果在Python环境中安装了Jupyter,则可以使用它们。

您可以通过在代码块顶部添加#%%来使用它。(在VSCode中,“运行单元格”按钮将自动出现)

此外,还可以将.ipynb导入为.py文件,然后可以运行以进行高级解密。


0

我刚刚发现了这个包p2j,并使用它来测试带有函数、注释和普通代码的.py文件。

我按照this answer中的指示进行了操作:

pip install p2j
p2j -o script.py -t new_file.ipynb

你也可以添加 -o 标志来覆盖原始文件。

有了这个,我得到了一个工作的Jupiter笔记本,每个代码块都在一个单元格中,并且注释是markdown格式的。

示例:

原始.py脚本

original .pz

转换后的 .ipynb 文件

converted .ipynb


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接