import arcpy
rows=arcpy.UpdateCursor("ElePoint1959",sort_fields="OBJECTID D")
timer=0
for row in rows:
timer += 1
row.setValue("Id",timer)
rows.updateRow(row)
del row
del rows
rows=arcpy.UpdateCursor("ElePoint1959")
for row in rows:
newValue=row.getValue("Id")%9 #9的倍数
row.setValue("Id",newValue)
rows.updateRow(row)
del row
del rows
arcpy.SelectLayerByAttribute_management("ElePoint1959", "NEW_SELECTION","Id=0") #选择语句要加引号
print "ok" #执行完毕
2 个回复
turtle
赞同来自: 江宝骅
思路:
1. 新建辅助字段用来存放排序后的序号(从1开始依次递增);
2. 根据题主要求计算该辅助字段,与3取余数计算;
3.选择余数不为0的即可
示例代码:
打开arcmap内置的python窗口,将下面的代码复制进去右键load脚本
updateCursor方法中的排序方式可以参考
http://resources.arcgis.com/zh ... 0000/
天涯印象 - 90后
赞同来自:
我现在建了个lyr要素类,代码改了一下Id 在Python窗口中运行就报错
…………………………分割线…………………………分割线…………………………分割线…………………………
我想到了一个不用编程的办法,可以在Excel里面弄一个字段,填充112竖着,112112112112……然后挂接起来,按属性选择1,这样就能选两个隔一个了,不过我还是想知道如何用python实现啊
……………………分割线………………分割线………………分割线………………
这样写就能直接把Id=0的行xua选择出来了,每9行zh中选择一行,满足要求!好用!非常感谢@turtle的解答,根据他的指导修正改进了代码
要回复问题请先登录或注册
发起人
90后
相关问题
问题状态