Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

ArcPy修改字段值


修改字段值(注册版本时需要开启编辑)
file_names=(‘BOUAN’,’BOULK’,’BOUNT’,’BOUPT’,’CTRLK’,’CTRPT’,’HYDAN’,’HYDLK’,’HYDNT’,’HYDPT’,’PIPAN’,’PIPLK’,’PIPNT’,’PIPPT’,’RESAN’,’RESLK’,’RESNT’,’RESPT’,’ROAAN’,’ROALK’,’ROANT’,’ROAPT’,’TERAN’,’TERLK’,’TERNT’,’TERPT’,’VEGAN’,’VEGLK’,’VEGNT’,’VEGPT’)
… target_folder = ‘D:\T20161202’
… symbolRef_field=’SYMBOLREF’
… where_clause= u”GlobalID IS NOT NULL”
… fields = [‘GLOBALID’,’SymbolRef’]
… arcpy.env.workspace=r’Database Connections/Connection to Orcl.sde’
… workspace = arcpy.env.workspace
… editor = arcpy.da.Editor(workspace)
… sde_datasets = arcpy.ListDatasets()
… for sde_dataset in sde_datasets:
…     sde_ds_names = sde_dataset.split(‘.’)
…     sde_ds_user = sde_ds_names[0]
…     if sde_ds_user==’GYJCCH’:
…         for sde_fc in arcpy.ListFeatureClasses(feature_dataset=sde_dataset):
…             print sde_fc
…             sde_fc_names = os.path.split(sde_fc)
…             sde_fc_fullnames = sde_fc_names[1].split(‘.’)
…             sde_fc_name = sde_fc_fullnames[1]
…             sde_fc_shortname = sde_fc_name[-5:]
…             if sde_fc_shortname in file_names and sde_fc_name[0:10]==’DLG_K_CGY_’:
…                 file_name_ext = sde_fc_shortname+’.txt’
…                 file_path = os.path.join(target_folder,file_name_ext)
…                 print file_path
…                 if os.path.exists(file_path):
…                     open_file=open(file_path,’r’)
…                     editor.startEditing(False,True)
…                     editor.startOperation()
…                     updateCursor = arcpy.da.UpdateCursor(sde_fc,fields,where_clause,None)
…                     for row in updateCursor:
…                         for file_line in open_file:
…                             guid_sub = file_line[0:38]
…                             if guid_sub == row[0]:
…                                 symbolref_value = file_line[39:-1]
…                                 row[1]=symbolref_value
…                                 updateCursor.updateRow(row)
…                                 print (‘Updated : GlobaldID = {0}, SymbolRef = {1}’.format(guid_sub,symbolref_value))
…                     del updateCursor
…                     editor.stopOperation()
…                     editor.stopEditing(True)
备注:未注册归档时不需要editor

转载自:https://blog.csdn.net/a_dev/article/details/54344405