2013-11-20 2 views
0

У меня есть файл jar, работающий в командной строке с использованием скриптов python. Файл jar может иногда вызывать исключения или сбои. Я хочу записать эти вхождения и исключения в файл. Я использую sys.stderr и sys.stdout, оба кажутся неспособными поймать исключения. Я пишу, чтобы спросить, как я могу это сделать в сценарии python.Запись потока System.err в файле при запуске jar в скриптах python

ответ

0

Простой перспективе с выходами труб:

def run_capture(command): 
    import subprocess 
    child = subprocess.Popen(command, stdout = subprocess.PIPE, stderr = subprocess.PIPE) 
    (output, errput) = child.communicate() 
    print "Out:'%s'" % output 
    print "Err:'%s'" % errput 

Все выходные захватывается.

Если я меняю stderr = subprocess.PIPE на stderr = file("destfile.txt", "w"), выход stderr поступает в требуемый файл.