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")