如何加载/编辑/运行/保存文本文件(.py)到IPython笔记本单元格?

时间:2014-01-10 01:00:02

标签: python jupyter-notebook ipython jupyter

我最近转向使用IPython笔记本作为我工作流程的一部分。但是,我没有成功地找到一种方法将.py文件导入到打开的IPython笔记本的各个单元格中,以便它们可以编辑,运行然后保存。可以这样做吗?

我在文档中找到了this,它告诉我如何将.py文件作为新笔记本导入,但这不符合我想要实现的目标。

我们非常感谢任何建议。

5 个答案:

答案 0 :(得分:262)

  

编辑:从IPython 3(现在的Jupyter项目)开始,笔记本有一个文本编辑器,可以作为一个更方便的替代方案   加载/编辑/保存文本文件。

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

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

%load filename.py

filename.py的内容将加载到下一个单元格中。您可以照常编辑和执行它。

要将单元格内容保存回文件,请在单元格的开头添加单元格魔术%%writefile filename.py并运行它。请注意,如果已存在具有相同名称的文件,则会以静默方式覆盖

要查看任何魔术命令的帮助,请添加?%load?%%writefile?

有关魔术功能的一般帮助,请输入“%magic” 有关可用魔术功能的列表,请使用%lsmagic。有描述 其中任何一个,输入%magic_name?,例如'%CD?'。

另请参阅:官方IPython文档中的Magic functions

答案 1 :(得分:100)

写/保存

%%writefile myfile.py

  • 将单元格内容写入/保存到myfile.py中(使用-a追加)。另一个别名:%%file myfile.py

运行

%run myfile.py

  • 运行myfile.py并在当前单元格中输出结果

加载/导入

%load myfile.py

  • load" import" myfile.py进入当前单元格

更多魔法和帮助

%lsmagic

  • 列出所有其他酷格魔术命令。

%COMMAND-NAME?

  • 获取有关如何使用某个命令的帮助。即%run?

注意

除了单元魔术命令之外,IPython笔记本(现在是Jupyter笔记本)非常酷,它允许您直接使用单元格中的任何unix命令(这也相当于使用%%bash单元魔术命令)。

要从单元格运行unix命令,只需在命令前加!标记即可。例如:

  • !python --version查看您的python版本
  • !python myfile.py运行myfile.py并在当前单元格中输出结果,就像%run一样(请参阅下面评论中的!python%run之间的差异)。< / LI>

另外,请参阅this nbviewer以获取有关示例的进一步说明。 希望这会有所帮助。

答案 2 :(得分:7)

将Python文件拖放到Ipython笔记本“home”笔记本表中,单击“上载”。这将创建一个新的笔记本,只有一个包含.py文件内容的单元格

从您喜欢的编辑器中复制/粘贴;)

答案 3 :(得分:3)

我发现在ipython notebook中使用ls和cd来查找文件是令人满意的。然后在单元格中键入cat your_file_name,然后您将获取该文件的内容,然后您可以将其作为代码粘贴到单元格中。

答案 4 :(得分:0)

对于这个问题,即如何加载编辑,运行和保存,我还没有找到满意的答案。如果要显示git中的增量更改,则使用%%writefile%save -f覆盖均无法正常工作。看起来您删除了filename.py中的所有行并添加了所有新行,即使您只编辑了1行。