[英]Does Python traceback.print_exc() prints to stdout or stderr?
它打印到stderr
,从以下测试中可以看出:
$ cat test.py
try:
raise IOError()
except:
import traceback
traceback.print_exc()
$ python test.py
Traceback (most recent call last):
File "test.py", line 2, in <module>
raise IOError()
IOError
$ python test.py > /dev/null
Traceback (most recent call last):
File "test.py", line 2, in <module>
raise IOError()
IOError
$ python test.py 2> /dev/null
$
根据python文档声明“如果文件被省略或无,则输出转到sys.stderr;否则它应该是一个打开文件或类似文件的对象来接收输出。” 这意味着您可以控制输出的打印方式/位置。
with open(outFile) as fp
print_exc(fp)
上面的例子将打印到文件'outFile'
顺便说一句,你也可以控制它:
import traceback
import sys
try:
raise Exception
except Exception as E:
traceback.print_exc(file=sys.stderr)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.