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

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

任何建议都将不胜感激。


当前回答

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

其他回答

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

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

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

如果你执行的单元格包含:

%load filename.py

py的内容将在下一个单元格中加载。您可以像往常一样编辑并执行它。

要将单元格内容保存回文件中,请在单元格的开头添加cell-magic %%writefile filename.py并运行它。注意,如果同名文件已经存在,它将被无声地覆盖。

要查看任何神奇命令的帮助,添加一个?:,如%load?或% % writefile ?。

有关魔术功能的一般帮助,请键入“%magic” 要获得可用的magic函数列表,请使用%lsmagic。对于描述 对于其中任何一个,键入%magic_name?,如。%的cd吗?。

请参见:来自IPython官方文档的Magic函数。

我还没有找到一个满意的答案这个问题,即如何加载编辑,运行和保存。如果你想在git中显示增量变化,使用%%writefile或%save -f重写都不能很好地工作。它看起来像是删除了filename.py中的所有行,并添加了所有新行,即使您只编辑了一行。

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

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

要在存在或不存在的文件中写入,请使用以下方法

%%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")