某项目的要素类按不同的数据集存放,现需为每个要素类添加一个唯一标识符字段(若已有则跳过)。代码如下:
env.workspace = r'D:\RK20180201.gdb' print env.workspace dss = arcpy.ListDatasets() for ds in dss: fcs = arcpy.ListFeatureClasses(feature_dataset = ds) print fcs for fc in fcs: print(u'------current feature class : {0}'.format(fc)) fds = arcpy.ListFields(fc) bGid = False for fd in fds: print(u' -- field : {0}'.format(fd.name)) if fd.name.upper() == 'GLOBALID': bGid = True print(' -- {0} has GID field'.format(fc)) if False == bGid: print(' ++ {0} has no GID field'.format(fc)) arcpy.AddField_management(fc,"GLOBALID","TEXT",None,None,40,"唯一标识符","NULLABLE","NON_REQUIRED")注意,测试数据的FeatureClass的字段由于使用了中文名称(是名称,不是别名),故而在print的时候,要指定字符集,即添加u开头。