在Python中使用'for'循环将变量传递给“使用属性选择”的标题中不包含任何特殊字符或引号的中文标题。

2024-09-28 03:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用ArcMAP中的“Select by Attribute”编写脚本。我要做的是创建一个for循环,它将向selectby属性表达式传递一个值。我一直在想: (x=形状文件中的多边形数)

for j in range(0,x,1):
  arcpy.MakeFeatureLayer_management ("layer", "temp") 
  arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION",""" "ID" > j""")
  arcpy.CopyFeatures_management("temp","SlopeG5")

剩下的脚本我应该可以处理,但是当我运行这个时,我得到错误代码000358,说表达式无效。ArcMap似乎不喜欢select by属性中的“j”。在

总体目标是隔离一个多边形,使用“按位置选择”来查找相交的多边形,找到两个多边形的面积,然后除以以获得第二个多边形覆盖的主多边形的百分比。在

希望这个描述足够清楚,可以得到一些帮助


Tags: 文件脚本forby属性表达式attribute多边形
2条回答

我对ArcMap一无所知,但您传递的是文本字符串“j”作为比较,而不是变量j的值。你可能是说:

arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION", "ID > %s" % j)

看起来这就是您想要做的-在字符串中插入j的值:

for j in range(0,x,1):
  arcpy.MakeFeatureLayer_management ("layer", "temp") 
  arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION",'"ID" > %s' % j)
  arcpy.CopyFeatures_management("temp","SlopeG5")

相关问题 更多 >

    热门问题