我最近转向使用IPython笔记本作为我工作流程的一部分。但是,我没有成功地找到一种方法将.py文件导入到打开的IPython笔记本的各个单元格中,以便它们可以编辑,运行然后保存。可以这样做吗?
我在文档中找到了this,它告诉我如何将.py文件作为新笔记本导入,但这不符合我想要实现的目标。
我们非常感谢任何建议。
答案 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
-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
之间的差异)。< / 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行。