我有一个正在使用的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 2011年
您是否尝试过提高systemexit?我有一个python程序,我在其中编写了一个if语句中的这种方法,它试图获取工作空间中的功能列表,如果返回空列表,则else调用提高systemexit(效果很好-我确实有很多日志文件输出和打印也在进行中,所以我可以知道为什么退出该程序。可能有多种方法可以做到这一点,甚至可能有更好的方法,但是这种方法可以实现我期望/想要的方法。
—
turkishgold
您是否在此GSE线程gis.stackexchange.com/questions/1015/…中