2013-08-14 2 views
0

저는 파이썬 언어에 익숙하지 않습니다. 내 문제는 두 개의 파이썬 스크립트가 있습니다 : 자동화 스크립트 A와 기본 스크립트 B. 스크립트 A 내부적으로 스크립트 B를 호출합니다. 스크립트 B는 sys.exit (1) 기능을 사용하여 예외가 발견 될 때마다 종료됩니다. 이제 스크립트 B가 종료 될 때마다 스크립트 A가 종료됩니다. 스크립트 B를 종료하더라도 스크립트 A를 종료하고 실행을 계속할 수있는 방법이 있습니까?다른 파이썬 스크립트가 종료되면 파이썬 스크립트 종료를 멈추는 방법?

미리 감사드립니다.

+0

정확히 ** 어떻게 ** scriptB를 호출합니까? '수입 '이나 일종의 시스템 호출을 통해? – Torxed

+0

가져 오기로 스크립트를 호출합니다. – Manu

답변

2

try except 블록에 코드를 캡슐화해야합니다. 예외를 잡아서 스크립트 A를 계속 실행합니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 스크립트 B가 예외를 던지면 작동 할 것입니다. 그러나 스크립트 B는 내 경우에 sys.exit (1)을 호출하여 프로그램을 완전히 종료시킵니다. – Manu

+2

SystemExit 제외 : catch해야 함 –

1

sys.exit() 실제로는 SystemExit 예외가 발생합니다. 이는 예외적으로 파이썬 인터프리터에 의해 캐치되어 처리됩니다. 당신이해야 할 일은 "스크립트 B"에있는 호출을 try/except 블럭에 넣는 것입니다.이 블럭은 모든 것을 방해하기 전에 SystemExit을 잡습니다. 예 :

try: 
    script_b.do_stuff() 
except SystemExit as e: 
    print('Script B exited with return code {0}'.format(e.code)) 
관련 문제