Solved! Go to Solution.
fieldList = gp.listfields(fc) for field in fieldList: try: gp.DeleteField(fc, field.name) except: print "Couldn't delete " + field.name #because it was OBJECTID, SHAPE, SHAPE_AREA, etc.
dsc = gp.describe(fc) keepList = [dsc.oidfieldname, dsc.shapefieldname, "MY_FAV_FIELD", dsc.shapefieldname + "_Length", dsc.shapefieldname + "_Area"] deleteString = "" fieldList = gp.listfields(fc) if field.name not in keepList: deleteString = deleteString + field.name + ";" gp.DeleteField(fc, deleteString[:-1])
fieldList = gp.listfields(fc) for field in fieldList: try: gp.DeleteField(fc, field.name) except: print "Couldn't delete " + field.name #because it was OBJECTID, SHAPE, SHAPE_AREA, etc.
dsc = gp.describe(fc) keepList = [dsc.oidfieldname, dsc.shapefieldname, "MY_FAV_FIELD", dsc.shapefieldname + "_Length", dsc.shapefieldname + "_Area"] deleteString = "" fieldList = gp.listfields(fc) if field.name not in keepList: deleteString = deleteString + field.name + ";" gp.DeleteField(fc, deleteString[:-1])
dsc = gp.describe(cadToFC) keepList = [dsc.oidfieldname, dsc.shapefieldname, "Layer", dsc.shapefieldname + "_Length", dsc.shapefieldname + "_Area"] deleteString = "" fldList = gp.ListFields(cadToFC) gp.addmessage("got fldList") for fld in fldList: if fld.name not in keepList: gp.addmessage(fld.name+ "...not in keeplist") deleteString = deleteString + fld.name + ";" gp.addmessage("added "+ fld.name +" to deletestring") gp.addmessage("about to delete fields" + "\n") gp.addmessage("deletString looks like this..." + "\n " + deleteString[:-1]) try: gp.DeleteField(cadToFC, deleteString[:-1]) except: gp.addmessage("failed to delete fields")
p.s. I don't see an option to mark question as answered but maybe you can't do that in the new forums?)
oidFld = "OBJECTID;" shpFld = "Shape;" lyrFld = "Layer;" lenFld = "Shape_Length" inputs = "" #returns a list fldList = gp.ListFields(cadToFC) for fld in fldList: [INDENT]#returns a string fldName = fld.name #adds to fieldname string + ";" inputs = inputs + fldName+";" [/INDENT] #a string minus the last ";" delfields = inputs[:-1] gp.addmessage("here is the delFields string: "+ delfileds) if delfields.find(oidFld) != -1: [INDENT]gp.addmessage("found oidfld") delFields.replace(oidFld, "") #EXCECUTION ENDS HERE FOR SOME REASON gp.addmessage("removed oid")[/INDENT] if delfields.find(shpFld) != -1: [INDENT]gp.addmessage("found shpfld") delFields.replace(shpFld, "") gp.addmessage("removed shpfild")[/INDENT] if delfields.find(lyrFld) != -1: [INDENT]gp.addmessage("found lyrfld") delFields.replace(lyrFld, "") gp.addmessage("removed lyrfld")[/INDENT]if delfields.find(lenFld) != -1: [INDENT]gp.addmessage("found lenfld") delFields.replace(lenFld, "") gp.addmessage("removed lyrfld")[/INDENT] gp.addmessage("Edited: " + delfields + "\n")