1

我有几个这样设计的defs:

def first():
    try:
       "Talking Business Here"
    except IOError, e:
       print e
    else:
       "Make a deal"

def second():
    try:
       "Business solution"
    except IOError, e:
       print e
       first()
    else:
        third()

def third():
    #Similar functionality


def main():
    second()

if __name__ == 'main':main()

我想将所有except消息和print消息收集到标准输出中。然后在这个 python 脚本中,我想检查标准输出,看看是否有任何消息,比如:

if len(sys.stdout) > 0 :
    #Send me an email

任何帮助/建议表示赞赏。

4

2 回答 2

2

你试过这个吗..

exeptions = []
def first():
    try:
       "Talking Business Here"
    except IOError, e:
       sys.stdout.write(e)
       exceptions.append(e)
    else:
       "Make a deal"

您也可以尝试将所有异常附加到列表中,然后

if len(exceptions) >0:
    "send me a mail"
于 2013-06-05T20:32:24.393 回答
1

你可以只分配文件描述符,我认为:

import sys

oldStderr = sys.stderr
sys.stderr = sys.stdout

现在一切正常到stderr现在都去stdout

oldStderr您不再需要时,您可以“撤消”分配。

如果您在将其分配stderr.

于 2013-06-05T20:34:20.580 回答