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

将ASCII变量的输出和/或保存内容重定向到IPython中的磁盘,python,ipython,Python,Ipython,我希望在IPython会议期间能够做到以下几点: 轻松地将变量的内容保存到ASCII文件中的磁盘 对于给定的命令,可以轻松地将stdout重新定向到磁盘 简单地说,我的意思是,例如使用magic(即,我希望避免在IPython中键入多行语句、打开文件描述符等) in建议使用 %edit some_variable 在编辑器中打开一个变量的值(基于$editor的值),以后可以从中将内容保存到磁盘。这听起来不错,但当我在常规Python变量上尝试时 > my_variable = 'Hel

我希望在IPython会议期间能够做到以下几点:

  • 轻松地将变量的内容保存到ASCII文件中的磁盘
  • 对于给定的命令,可以轻松地将stdout重新定向到磁盘
  • 简单地说,我的意思是,例如使用
    magic
    (即,我希望避免在IPython中键入多行语句、打开文件描述符等)

    in建议使用

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

    > my_variable = 'Hello world'
    > %edit a
    
    我得到
    TypeError:“NoneType”对象不可iterable
    (顺便说一句,我知道我的
    $EDITOR
    env.variable工作得很好,因为我使用的其他程序都依赖它。在我的情况下,
    $EDITOR
    无论哪种方式都是
    emacsclient

    我也尝试过:

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

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

    关于如何实现这一点有什么想法吗?

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

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