将.ipynb文件转换为.py文件的最佳方法在VSCode中是什么?

12
我正在寻找一种将.ipynb转换为.py文件的好方法,使用VSCode。到目前为止,我尝试过以下方法: - 内置于VSCode中的“导出”选项。不理想,因为它会在脚本开头产生以下内容,以及“运行单元格”,“运行下面”等按钮/链接: "To add a new cell, type '# %%' To add a new markdown cell, type '# %% [markdown]' %% from IPython import get_ipython" - nbconvert。我通常将其作为命令插入到脚本本身中(https://dev59.com/nWQn5IYBdhLWcg3wIkIF#19779226),这样一旦运行就会自动转换和保存。但是这也会留下“运行单元格”等标记,以及执行标记(例如:“In [1]”) - jupytext。我通常也将其作为命令插入。在.py的开头,它会产生: -- coding: utf-8 - --- jupyter: jupytext: text_representation:
有没有一个好的、极简主义的解决方案,它不会在我的笔记本的.py版本中插入一堆需要手动编辑的垃圾,并且可以轻松/自动地从笔记本本身执行?这也可能是我目前不知道的设置调整,可以使我提到的其中一件事情更好地运作。
提前感谢。

根据您的系统,可以轻松地使用sed命令删除第一行来跟进jupytext命令。 Jupytext很好,因为它允许很好的往返能力。但是,我不知道往返转换是否可以在没有正常第一行的情况下按照广告宣传的那样工作。 - Wayne
6个回答

21

2
现在它被称为“Jupyter:转换为Python脚本”。 - Rene Smit
1
这个解决方案生成了一个包含“交互模式”垃圾代码(如“'# %%'”)的文件,而问题提问者明确表示他们不想要。然而,正如另一个答案所指出的那样,这些很容易被删除。 - 0012

4
我们可以在 "settings.json" 中添加以下设置,生成的 Python 文件将不会包含 "Run Cell"、"Run Above"、"Debug Cell"。
"jupyter.codeLenses": " ",

enter image description here


使用 nbconvert 并没有为我解决问题。 - moth

3

使用命令面板将文件转换为.py,它会打开一个文件,只需选择其中一个markdown #%%,更改所有出现的情况(Ctrl+F2),然后一次性删除所有的# %%。这将删除所有"Run Cell"等...保存文件。


3
在VSCode v1.75.1中,如果您在文件资源管理器侧边栏上右键单击笔记本文件(.ipynb),您将看到一个名为“导入笔记本到脚本”的选项。这对我很有用。图像显示右键单击后的选项

我没有这个选项。也许你安装了一个添加了这个选项的扩展? - Betty

2

如果您不想修改您的settings.json文件(或者不知道它存储在哪里),实际上您可以通过VSCode IDE更改Python文件的导出方式。

打开设置(ctrl + ,)或单击左下角的大齿轮并搜索“jupyter code”。您要取消选择的选项是Jupyter > Interactive Window > Code Lens: Enable

如何找到该设置

现在,当您导出笔记本时,它应该删除运行单元格的选项,尽管%仍将存在。


1
我发现在VS Code内部有一种导出的方式:

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

导出 Jupyter 笔记本

除了打开 Jupyter 笔记本外,您还可以使用以下命令之一从命令面板 (⇧⌘P) 导出在 VS Code 中的 Python 文件内容到 Jupyter 笔记本(使用 .ipynb 扩展名):

  • Jupyter: 将当前 Python 文件导出为 Jupyter 笔记本:从当前文件的内容创建一个 Jupyter 笔记本,使用 # %%# %% [markdown] 分隔符来指定它们各自的单元格类型。
  • Jupyter: 将当前 Python 文件及其输出导出为 Jupyter 笔记本:从当前文件的内容创建一个 Jupyter 笔记本,并包括代码单元格的输出。
  • Jupyter: 将交互式窗口导出为 Jupyter 笔记本:从 Python 交互式窗口的内容创建一个 Jupyter 笔记本。

导出内容后,VS Code 将显示一个提示,您可以通过该提示在浏览器中打开笔记本。


2
请在您的回答中提供更多细节。目前的写法让人难以理解您的解决方案。 - Community
奇怪,我找不到导出选项。 - Newbie
@新手,即使在执行了Ctrl+Shift+P(Windows)或⇧⌘P(MacOS)并输入“Export”后,您还是无法解决问题吗? - Sterling
1
@Sterling 找到了!谢谢! - Newbie

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