【发布时间】:2015-11-03 13:21:28
【问题描述】:
我从http://forums.devshed.com/python-programming-11/redirect-stdout-stderr-file-500952.html 获得的以下代码告诉了如何将标准错误重定向到文件。我试过了,但错误消息没有保存到文件中。虽然我没有使用
sys.stderr = file_err
错误显示在空闲终端中,当我将 file_err 分配给 sys.stderr 时,错误未显示在空闲终端中,并且没有被复制到 file_name.log
import sys
original_stderr = sys.stderr
file_err = open('file_name.log', 'w') # I tried with .txt also
sys.stderr = file_err
print(list[file]) # Used to create a NameError
sys.stderr = original_stderr
file_err.close()
我应该将它写入文件还是程序中有错误?
【问题讨论】:
-
此代码 sn-p 在我的机器上的
file_name.log中打印一个 Traceback 错误。你那里会发生什么?你期望会发生什么?你如何运行它? -
从 shell 重定向 stderr 有什么问题?如果你想记录,stdlib 中有一个专用的包,它可以提供更多...
-
我只有一个问题:您是否在 Python Shell 中运行了代码?
-
@nos 我只是在学习标准流的工作,而 sys.stdout 工作正常。所以我正在尝试使用 sys.stderr。我只想将错误消息复制到文件中。我正在使用 python 3.4。
标签: python