我最近开始使用 IPython 笔记本作为我工作流程的一部分。但是,我没有成功找到一种方法将 .py 文件导入到打开的 IPython 笔记本的各个单元格中,以便它们可以编辑、运行然后保存。这可以做到吗?
我在文档中找到了这个,它告诉我如何将 .py 文件作为新笔记本导入,但这没有达到我想要实现的目标。
任何建议将不胜感激。
我最近开始使用 IPython 笔记本作为我工作流程的一部分。但是,我没有成功找到一种方法将 .py 文件导入到打开的 IPython 笔记本的各个单元格中,以便它们可以编辑、运行然后保存。这可以做到吗?
我在文档中找到了这个,它告诉我如何将 .py 文件作为新笔记本导入,但这没有达到我想要实现的目标。
任何建议将不胜感激。
编辑:从 IPython 3(现在的 Jupyter 项目)开始,笔记本有一个文本编辑器,可以用作加载/编辑/保存文本文件的更方便的替代方法。
可以使用魔法命令将文本文件加载到笔记本单元格中%load
。
如果您执行包含以下内容的单元格:
%load filename.py
的内容filename.py
将加载到下一个单元格中。您可以像往常一样编辑和执行它。
要将单元格内容保存回文件中,请在单元格%%writefile filename.py
的开头添加 cell-magic 并运行它。请注意,如果同名文件已经存在,它将被静默覆盖。
要查看任何魔术命令的帮助,请添加?
:like%load?
或%%writefile?
.
有关魔术函数的一般帮助,请键入 "%magic" 要获得可用魔术函数的列表,请使用 %lsmagic。有关其中任何一个的描述,请键入 %magic_name?,例如 '%cd?'。
另请参阅:来自官方 IPython 文档的魔术函数。
%%writefile myfile.py
-a
追加)。另一个别名:%%file myfile.py
%run myfile.py
%load myfile.py
%lsmagic
%COMMAND-NAME?
%run?
除了单元格魔法命令之外,IPython 笔记本(现在的 Jupyter 笔记本)非常酷,它允许您直接从单元格中使用任何 unix 命令(这也相当于使用%%bash
单元格魔法命令)。
要从单元格运行 unix 命令,只需在命令前加上!
标记。例如:
!python --version
查看您的python版本!python myfile.py
运行 myfile.py 并在当前单元格中输出结果,就像(请参阅下面的评论中的和%run
之间的区别)。!python
%run
此外,请参阅此 nbviewer以获取示例的进一步说明。希望这可以帮助。
在 Ipython notebooks “home” notebooks 表中拖放一个 Python 文件,单击上传。这将创建一个新笔记本,其中只有一个包含您的 .py 文件内容的单元格
否则从您最喜欢的编辑器中复制/粘贴;)
我发现在 ipython notebook 中使用 ls 和 cd 来查找文件是令人满意的。然后在单元格中键入 cat your_file_name,您将取回文件的内容,然后您可以将其作为代码粘贴到单元格中。
写入存在或不存在的文件中,请使用以下内容
%%writefile script2.py
print(4+5)
print(5+5)
附加到文件使用 -a 参数
%%writefile -a script2.py
print("hello")
当你加载文件时
%load script2.py
print(4+5)
print(5+5
print("hello")
对于这个问题,我还没有找到令人满意的答案,即如何加载编辑、运行和保存。如果您想在 git 中显示增量更改,使用覆盖%%writefile
或覆盖%save -f
效果不佳。看起来您删除了所有行filename.py
并添加了所有新行,即使您只编辑了 1 行。