def Rename_Field(fc_path, field_name): field_name_orig = field_name + "_orig" gp.addmessage("Renaming field: " + field_name + " to " + field_name + "_orig") print "Renaming field: " + field_name + " to " + field_name_orig field_list = gp.ListFields(fc_path, field_name) field = field_list.next() type = str(field.Type) length = str(field.Length) # Case handling; Returned type of "String" uses the a type of "text" and also uses length as an AddField parameter. if (type == "String"): type = "TEXT" gp.AddField_management(fc_path, field_name_orig, type, "", "", length, "", "NULLABLE", "NON_REQUIRED", "") gp.CalculateField(fc_path,field_name_orig, "[" + field_name + "]") gp.DeleteField_management(fc_path, field_name) else : # Case handling; Returned type of "Integer" converted to a type of "long" for use as AddField parameter. if (type == "Integer"): type = "LONG" gp.AddField_management(fc_path, field_name_orig, type, "", "", "", "", "NULLABLE", "NON_REQUIRED", "") gp.CalculateField(fc_path,field_name_orig, "[" + field_name + "]") gp.DeleteField_management(fc_path, field_name) # Case handling; Returned type of "SmallInteger" converted to a type of "short" for use as AddField parameter. elif (type == "SmallInteger"): type = "SHORT" gp.AddField_management(fc_path, field_name_orig, type, "", "", "", "", "NULLABLE", "NON_REQUIRED", "") gp.CalculateField(fc_path,field_name_orig, "[" + field_name + "]") gp.DeleteField_management(fc_path, field_name) # Case handling; Returned type other than "String", "Integer", or "SmallInteger" handled normally. else : gp.AddField_management(fc_path, field_name_orig, type, "", "", "", "", "NULLABLE", "NON_REQUIRED", "") gp.CalculateField(fc_path,field_name_orig, "[" + field_name + "]") gp.DeleteField_management(fc_path, field_name) # Reset variables name = "" type = "" length = "" fc_path = "" field_name = ""
dsc = arcpy.Describe(infc) fields = dsc.fields for field in fields: print field.name, field.type arcpy.AddField_management(infc2, field.name, field.type)
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.