直接标准错误到同一文件和标准输出?

时间:2011-02-02 17:38:43

标签: python file file-io

我有类似

的东西
f=open('out.txt','w')
print >>f,  'action=%r'%action

在我的一个Python程序中。是否可以将标准错误指向与标准输出相同的文件?

谢谢!

2 个答案:

答案 0 :(得分:2)

你可以这样做......

import sys

f = open("error.log", "w")
sys.stderr = f            
print "raising exception"
raise Exception, "find this in error.log"

或者更直接地回答您的问题,

import sys
f = open("logall.txt", "w")
sys.stderr = f
sys.stdout = f
print "find this in logall.txt"
raise Exception, "find this in logall.txt"

虽然我不一定推荐后者。

答案 1 :(得分:1)

您可以这样说:

sys.stderr = sys.stdout

但是如果你的脚本会由其他人维护,我会下注,你可能会引起一些困惑。而不是在脚本中执行此操作,从调用shell执行此操作是否可接受?

myscript 2>&1