1

我希望能够在 IPython 会话期间执行以下操作:

  1. 以 ASCII 文件的形式轻松将变量的内容保存到磁盘
  2. 对于给定的命令,轻松地将标准输出重定向到磁盘

很容易我的意思是例如使用 a magic(即我想避免在 IPython 中键入多行语句、打开文件描述符等)。

这个线程中的这个答案建议使用

%edit some_variable

在编辑器中打开变量的值(基于 的值$EDITOR),以后我可以从中将内容保存到磁盘。这听起来不错,但是当我在常规 Python 变量上尝试时

> my_variable = 'Hello world'
> %edit a

我明白TypeError: 'NoneType'object is not iterable了(顺便说一句,我知道我的$EDITORenv. 变量运行良好,因为我使用的其他程序都依赖它。无论哪种方式$EDITOR都是 emacsclient我的情况)

我也尝试过:

%save 'test.txt' print(my_variable)

希望它将语句的输出重定向print(my_variable)test.txt,但我收到以下错误:

'print(a)' was not found in history, as a file, url, nor in the user namespace.

关于如何做到这一点的任何想法?

4

2 回答 2

2

您可以通过 将变量保存到文件,并通过魔术%store foo > foo.txt捕获 stdout/stderr ,这可能会有所帮助。%%capture

于 2014-03-14T14:41:13.367 回答
1

IPython 开发人员有一种%%writefile将单元格的原始内容转储到磁盘上的魔力。这会有帮助吗 ?否则你将不得不编写自己的魔法(不太难)

于 2013-07-09T09:13:28.377 回答