首页 > 解决方案 > 如何使工具成为可选的?并且仅在填充参数时才运行?

问题描述

我在 arcpy 脚本中运行多个工具。在脚本结束时,我想提供使用定义投影更改投影的选项。如果用户不希望它运行,我不希望它运行,因此如果没有参数输入到工具中,那么它就不会运行。

这可能吗?

我正在运行 ArcMap 10.5。不知道你还需要知道什么。

Prjs = arcpy.GetParameter(4)
Prjs_List = []
for Prj in Prjs:
    if Prj not in Prjs_List:
        print Prj
        Prjs_List.append(dem)
if len(Prjs_List) == True:
    arcpy.DefineProjection_management(Cont_Cliff_Merged, Prjs)
else:
   arcpy.AddMessage("Define Projection tool Skipped.")

我希望这会根据输入参数创建一个列表,如果没有输入,则会显示打印语句。

我收到一条错误消息,告诉我地理处理参数不可迭代,这意味着无法将 .prj 文件放入列表中。

想法?

标签: pythonarcpy

解决方案


您需要改用 GetParameterAsText() 函数。这样,如果输入为空,它将返回一个空字符串,否则将返回一个字符串。如果输入参数接受多个输入,则需要使用 split() 函数将多个输入拆分为字符串列表。

IE。:

Prjs = GetParameterAsText(4)
Prjs_List = Prjs.split(‘,’)
If len(Prjs_List):
Do something
Else:
Do otherthing

推荐阅读