如何将IPython控制台的输出保存到Spyder中的文件?

ℕʘʘ*_*ḆḽḘ 8 python spyder anaconda

我的程序中有一个错误:(

问题是:

  • 我的 .py代码很长,需要很长时间才能运行
  • 我不知道错误在哪里

好消息是,我有很多print()在我py文件,所以我可能知道的bug生活。

坏消息是,我的错误让我的电脑死机,所以没有办法,我看的输出ipython控制台,看看哪里出了问题。

程序运行时如何将输出写入磁盘?这样重启后我仍然可以打开文件,以了解崩溃之前发生了什么?

这个问题与将stdout重定向到Python中的文件不同吗?,因为我需要

  • 连续写入文件
  • 在Spyder中使用的一些东西

非常感谢!

Car*_*oba 12

非常有趣的问题!幸运的是,IPython为您提供了正确的魔术。称为%logstart(请参阅完整文档的链接)。

要开始使用它并保存所有命令的输入和输出,只需在IPython控制台中键入

In[1]: %logstart -o
Run Code Online (Sandbox Code Playgroud)

从那一刻起,它将把您的会话记录到ipython_log.py当前目录中名为的文件中。

%logstart 是非常灵活的,因此您可以选择要保存到的其他文件以及会话的保存方式(纯Python或IPython命令)。

  • @CarlosCordoba,似乎`%logstart -o` 只在有`Out[n]` 时才注销,但如果有`stdout` 它不会捕获它。有没有办法在“ipython”中捕获“stdout”,尤其是在没有“Out[n]”的情况下? (7认同)
  • Anaconda 4.3 将于 2017 年 1 月最后一周或 2 月第一天发布,其中包括 Spyder 3.1。 (2认同)