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)
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.