在IPython中将ASCII变量的输出重定向输出和/或保存到磁盘

时间:2013-07-08 19:52:20

标签: python ipython

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

  1. 使用ASCII文件轻松将变量内容保存到磁盘
  2. 轻松将stdout重定向到指定命令的磁盘
  3. 很容易,我的意思是例如使用magic(即我想避免必须在IPython中键入多行语句,打开文件描述符等)。

    This answer中的

    this thread建议使用

    %edit some_variable
    

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

    > my_variable = 'Hello world'
    > %edit a
    

    我得到TypeError: 'NoneType'object is not iterable(顺便说一句,我知道我的$EDITOR env。变量效果很好,因为我使用的其他程序都依赖它。无论哪种方式$EDITOR都是{{1在我的情况下)

    我也尝试过:

    emacsclient

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

    test.txt

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

IPython开发有一个%%writefile魔法,可以在磁盘上转储单元格的原始内容。 这会有帮助吗 ?否则你将不得不写自己的魔法(不太难)