繁体   English   中英

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

[英]How to load/edit/run/save text files (.py) into an IPython notebook cell?

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

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

任何建议将不胜感激。

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

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

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

%load filename.py

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

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

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

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

另请参阅:官方 IPython 文档中的魔术函数

写入/保存

%%writefile myfile.py

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

跑步

%run myfile.py

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

加载/导入

%load myfile.py

  • 将“导入”myfile.py 加载到当前单元格中

获取更多魔法和帮助

%lsmagic

  • 列出所有其他很酷的单元格魔法命令。

%COMMAND-NAME?

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

笔记

除了单元魔术命令,IPython notebook(现在是 Jupyter notebook)非常酷,它允许您直接从单元使用任何 unix 命令(这也相当于使用%%bash cell magic 命令)。

要从单元中运行 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,您将获得文件的内容,然后您可以将其作为代码粘贴到单元格中。

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

写入存在或不存在的文件中,请使用以下内容

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM