我有一个用于ArcGIS 10.0的arcpy工具脚本,该脚本包含两个主要的功能部分。用户可以选择是否运行第二部分。如果用户选择不运行第二部分,我只想运行清理功能并使用sys.exit(0)退出脚本,而不会在工具结果窗口中发布错误消息。 GIS-SE中有两个主要线程与退出arcpy脚本有关,但是其中的解决方案并未专门解决错误消息。该代码的一般结构如下:
import sys
##import arcpy
def CleanUp():
print 'Cleaning up ...\n'
def finish():
CleanUp()
print 'Exiting ...'
sys.exit(0)
do_more = False #or True ... input from user
#Section 1: do some stuff
print 'Doing some stuff ...\n'
if not do_more:
finish()
#Section 2: do more stuff
print 'doing more stuff ...'
CleanUp()
如果我在ArcGIS / arcpy之外的Python解释器中运行此代码,则它会按我的预期工作,并且正常退出且没有错误消息;但是,在具有相同结构的arcpy脚本中,该脚本会退出,但是SystemExit错误消息会发布到工具结果窗口中。有没有一种方法可以使arcpy工具脚本吃掉异常并掩埋SystemExit错误消息?
只是在这里采取了疯狂的手段,但是在脚本中调用SystemExit之前,您是否有可能“ del arcpy”?
@Dan-我对此表示怀疑,但这是一个有趣的主意……嗯……到底是什么。我会旋转的。
—
celticflute 2011年
感谢您发布简洁的代码示例,该示例清楚地说明了逻辑并省略了其他功能。+1
—
马特·威尔基,