2013-08-13 2 views
0

파이썬 스크립트를 사용하여 생성 도구와 컴파일러를 호출하는 배치 파일을 호출합니다. 내가 사용하여 출력 파일이 저장 :파이썬 콘솔에서 txt 파일로 리디렉션 메시지

os.system("run.bat >output.txt") 

문제는 경고와 컴파일러 오류가이 출력 파일에 저장되지 않는다는 것입니다 - 그것들은 오직 파이썬 콘솔에 표시됩니다.

출력을 파일로 저장하는 방법은 무엇입니까?

답변

0

당신은 몇 가지 할 수 있습니다 : 표준 출력과 표준 에러 파일

  • 사용하여 os.system 전화의 표준 오류의 리디렉션에 대한 핸들을 얻을 수

    1. 사용 subprocess 가족.

    첫 번째 것은 더 파이썬 문자이며 파이썬 스크립트가 오류를 인식 할 수 있습니다.

  • 0

    같은 파일을 표준 오류 리디렉션하는 간단한 방법은 다음과 같이이다 :

    os.system("run.bat > output.txt 2>&1") 
    
    0

    ~ 당신이 오류가 처리하지, 또는 더 나쁜, 당신이 경우에는 표시가없는 os.system을 사용하지 마십시오 오류가 발생했습니다.

    이 같은이 문제를 해결할 :

    from subprocess import Popen, PIPE 
    
    proc = Popen(['run.bat'], stdout=PIPE, stderr=PIPE) 
    
    result = proc.communicate() 
    
    with open('output.txt', 'w') as output: 
        output.write(result[0]) 
    
    with open('errors.txt', 'w') as errors: 
        errors.write(result[-1]) 
    
    관련 문제