最近又用到这个自动编号功能,所以翻出来了老博客。之前写的太糙了,这次找出来发现连自己都不会用了,这豆腐渣工程
鸣谢:一位不轻易透明姓名的大佬儿
使用场景:给shp里的要素重新编号。
代码实现:给Id字段从1开始以1递增自动编号
(一)ArcMap中,打开Python窗口,输入以下代码并按回车运行
rows = arcpy.UpdateCursor('D:/New_Shapefile.shp','','','','') #第一对双引号内写数据的绝对位置,Python的注释要用#
i = 0
for row in rows:
i = 1
row.setValue('ID', i) #ID这个字段是自己提前在数据属性表中新增的,用于存储我们要写入的编号
rows.updateRow(row)
print '成功连续编号!'
备注:
(2)如该数据已加入视图,可以采用重新添加数据的方法后查看代码执行效果。
(二)IDLE中新建窗口,写入代码后保存为.py文件按F5运行
# -*- coding: cp936 -*-
import arcpy
rows = arcpy.UpdateCursor('D:/New_Shapefile.shp','','','','')
i = 0
for row in rows:
row.setValue('ID', i) #在IDLE中要十分注意缩进,此处缩进用上一行末尾回车的办法来控制,后续保持一致
rows.updateRow(row)
print '成功连续编号!' #这里的print,缩进与不缩进,打印效果是不同的,可以自行尝试一下