如何将stderr重定向到Python中的文件?

2024-10-01 11:41:48 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我从http://forums.devshed.com/python-programming-11/redirect-stdout-stderr-file-500952.html得到的代码,它告诉我如何将stderr重定向到文件。我试过了,但是错误信息没有保存到文件中。当我不使用

sys.stderr = file_err

当我分配文件错误到时,错误显示在空闲终端中系统标准错误不会显示在空闲终端中,也不会复制到文件中_名称.log在

^{pr2}$

我应该把它写入文件还是程序有错误?在


Tags: 文件代码comhttp终端html错误stderr
1条回答
网友
1楼 · 发布于 2024-10-01 11:41:48

你的代码运行得很好(我的意思是:重定向到stderr)。但是请注意,与python3.5相比,您可以使用^{}的上下文管理器来执行此操作:

from contextlib import redirect_stderr

with open('filename.log', 'w') as stderr, redirect_stderr(stderr):
    # errors from here are logged to the file.

注:

  • 您不必显式调用close。在
  • 您不必显式地保存旧的stderr并在最后恢复它。在

顺便说一句:不用保存旧的stderr值,您只需使用sys.__stderr__。在

相关问题 更多 >