python - 如何使工具成为可选的?并且仅在填充参数时才运行?
问题描述
我在 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 文件放入列表中。
想法?
解决方案
您需要改用 GetParameterAsText() 函数。这样,如果输入为空,它将返回一个空字符串,否则将返回一个字符串。如果输入参数接受多个输入,则需要使用 split() 函数将多个输入拆分为字符串列表。
IE。:
Prjs = GetParameterAsText(4)
Prjs_List = Prjs.split(‘,’)
If len(Prjs_List):
Do something
Else:
Do otherthing
推荐阅读
- asp.net - 比较来自不同网络服务器的散列密码
- c# - 与 bot 框架一起使用时,aspnetcore 中的模糊 CloudStorageAccount
- c++ - 标记为未涵盖的类定义
- python - sys.stdout.write 没有 grep
- postgresql - SQL中针对特定数据列的自定义顺序
- scala - Scala - Slick - 为包装的 Option[T] 获取 TypedType
- python - 如何通过在同一列中使用保持参数 first 和 Last 来删除 pandas df 列中的重复值
- python - Selenium 无需滚动即可下载图像
- c++ - QWaitCondition 可以虚假唤醒吗?
- sql-server - 如何将大型表从 SQL (SSMS) 导出到(压缩)文件?