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

aar*_*ack 219 python ipython jupyter jupyter-notebook

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

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

任何建议将不胜感激.

use*_*916 281

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

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

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

%load filename.py
Run Code Online (Sandbox Code Playgroud)

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

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

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

有关魔术函数的一般帮助,请键入"%magic"有关可用魔术函数的列表,请使用%lsmagic.有关其中任何一个的说明,请键入%magic_name ?,例如'%cd?'.

另请参阅:官方IPython文档中的魔术功能.

  • 这个加上'%save -f`似乎是我正在寻找的方式.谢谢! (3认同)
  • 新的魔术命令目前是`%loadpy`(而不是'%load`). (3认同)
  • `save -f`是一种保存到文件中的间接方式,只有先执行单元格然后提供正确的引用才能工作.通常,使用将当前单元格写入文件的`%% writefile`更容易.我更新了答案,提到这一点. (2认同)

Azi*_*lto 109

写/保存

%%writefile myfile.py

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

跑步

%run myfile.py

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

加载/导入

%load myfile.py

  • 将"import"myfile.py加载到当前单元格中

获得更多魔力和帮助

%lsmagic

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

%COMMAND-NAME?

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

注意

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

要从单元格运行unix命令,只需在命令前加上!mark即可.例如:

  • !python --version 看看你的python版本
  • !python myfile.py运行myfile.py并在当前单元格中输出结果,就像%run(请参阅下面的注释!python和之间的区别%run).

另外,请参阅此nbviewer以获取有关示例的进一步说明.希望这可以帮助.

  • 阿齐兹,这是一个很好的答案.一个小注意事项:使用`%run myfile.py`而不是`!python myfile.py`略有不同.如果你执行前者,它将使用ipython内核执行,包括配置的任何预加载.一个小问题,但今天我遇到了一个错误,它对我有所帮助. (5认同)

Rap*_*aud 7

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

从你最喜欢的编辑器复制/粘贴;)


Rus*_*art 5

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