작업중 인 ArcGIS 용 Python 스크립트가 있으며 필요한 데이터가 없으면 스크립트를 종료 할 수 있기를 원합니다. sys.exit ()를 똑바로 시도했지만 ArcMap에서 피하고 싶은 예외가 발생했습니다. try 블록 사용을 제안하는 이 스레드 를 찾았 으므로이 기능을 만들었습니다.
def quit_script(message):
log_msg(message) # already defined; writes a message to a file
if log_loc:
output.close() # close the file used with log_msg()
try:
sys.exit()
except SystemExit:
pass
불행히도, 그것은 작동하지 않았습니다. 글쎄, 그것은 더 이상 ArcMap에서 그 오류를 만들지 않지만 종료하지도 않습니다. 지금은 if / else 문에 많은 코드가 있지만 그게 추악합니다. 다른 제안이 있습니까?
감사! 브라이언
이론적으로 sys.exit (0)은 성공적으로 종료 된 작업입니다 -msdn.microsoft.com/en-us/library/ms681381.aspx 참조 -Michael 처럼 ArcGIS 근처에 있지 않아서 어떻게 작동하는지 알려 드릴 수 없습니다. 처리.
—
om_henners
시스템 종료를 시도 했습니까? 작업 공간의 기능 목록을 가져 와서 if 문 에서이 접근법을 사용하는 파이썬 프로그램이 있는데 빈 목록을 반환하면 else 호출은 systemexit를 발생시킵니다 (잘 작동합니다-많이 있습니다) 로그 파일 출력 및 인쇄도 진행되므로 프로그램이 종료 된 이유를 알 수 있습니다). 아마도이 작업을 수행하는 여러 가지 방법과 더 나은 방법 일 수 있지만이 방법은 내가 기대 한 / 원하는 일을합니다.
—
turkishgold
이 GSE 스레드 gis.stackexchange.com/questions/1015/…