我有一个很大的python脚本,其中多个打印语句和警告(例如,弃用警告)被打印到IPython控制台。为了进行调试,我想将所有打印语句和警告/错误写入输出文件。在Spyder中有没有办法做到这一点?
我已经在控制台中尝试过(但不会在我的任何目录中创建输出文件):
runfile('pyfile.py',wdir='wdir') > output.txt
我知道如何在提示中做到这一点:
python "directory\pyfile.py"> output.txt 2>&1
但是能够在Spyder中执行此操作将更加方便。我在此处对Stack Overflow进行了广泛的搜索,但是先前问题的答案都没有给我想要的结果。
答案 0 :(得分:4)
(此处为 Spyder维护者),您需要了解Spyder使用 IPython 控制台来运行您的代码,因此最好搜索在其中可以执行的操作IPython,而不是在Spyder中。
在这种情况下,搜索ipython save stdout
会在第一个结果中给我right answer,这就是StackOverflow。
从本质上讲,您需要使用%%capture
魔术或上下文管理器(如上面答案中提到的那样),并将runfile
放在其中一个中,以捕获程序中的所有stdout输出