说明与适用范围
本脚本目的是为了自定义编号。
实例,我们的数据FID是0, 1, 2,3…
我们需要的编号是 ‘编号000001’、‘‘编号000002’’、‘‘编号000003’’、、、
那么就可以使用这套脚本
前置规则即上述的‘编号’,
源码
#-*- coding:utf-8 -*-
__author__ = 'lumen'
import arcpy
def pad_number(num, n):
# 首先确保输入是一个整数
num = int(num)
# 使用字符串格式化来确保数字有n位,不足n位则前面补0
return "{:0{}}".format(num, n)
InputFeature = arcpy.GetParameterAsText(0) #输入图层
numberField = arcpy.GetParameterAsText(1) #输入自定义编号的字段名
# 添加字段
arcpy.AddField_management(InputFeature, numberField, "TEXT")
# 前置规则
beforeString = arcpy.GetParameterAsText(2)
beforeString = beforeString.encode('utf-8')
# 零的个数
ZeroNumber = arcpy.GetParameterAsText(3)
# 起始编号
beginField = arcpy.GetParameterAsText(4)
#获取数据游标
cursor = arcpy.UpdateCursor(InputFeature)
#遍历数据
for row in cursor:
newValue = beforeString + pad_number((row.getValue(beginField)+1),ZeroNumber)
row.setValue(numberField,newValue)
arcpy.AddMessage(row.getValue(numberField))
cursor.updateRow(row)
# 完活儿
arcpy.AddMessage('project succeed,best wishes for you')
# 删除游标对象
del cursor, row