listmdb = arcpy.ListWorkspaces('*', 'FileGDB') for mdb in listmdb: print mdb # same logic as above # change inner loops to for loops too # don't call next, since it's done behind the scene with the for loop
listmdb = gp.ListWorkspaces('*', 'FileGDB') for mdb in iter(listmdb.next, None): # Note: no function parantheses following next print mdb # same logic as above # change inner loops to for loops too # don't call next, since it's done behind the scene with the for loop
############################################################## ## Delete Empty Feature Classes from Multiple Geodatabases ## ## This script loops through all geodatabases within a directory ## and removes empty featureclasses from each geodatabase. ## ## User must hardcode directory. Run this script in IDLE. ## ## Python Version 2.4 ############################################################## # Create the Geoprocessor object import arcgisscripting, os, sys, string gp = arcgisscripting.create() # Load required toolboxes�?� gp.AddToolbox("C:\\Program Files\\ArcGIS\\ArcToolbox\\Toolboxes\\Conversion Tools.tbx") # Set workspace gp.workspace = "L:\\Justin\\00_jobs\\Python_Scripting_Test\\" # list personal geodatabases in the current workspace listmdb = gp.listworkspaces("*", "FileGDB") mdb = listmdb.next() # loop through the personal geodatabases while mdb: print mdb gp.workspace = mdb # list feature datasets in personal geodatabase listfdset=gp.listdatasets() fdset=listfdset.next() # loop through feature dataset while fdset: print "fdset: ", fdset if not fdset == None: gp.workspace = mdb + "\\" + fdset # list feature classes in the personal geodatabase fcs = gp.listfeatureclasses() fcs.reset() fc = fcs.next() # loop through the featureclasses while fc: print fc, gp.GetCount_management(fc) # if the feature class table has no records, delete the featureclass if gp.GetCount_management(fc) == 0: gp.Delete_management(fc) print fc + "deleted from" + mdb fc = fcs.next() fdset=listfdset.next() mdb = listmdb.next()
The result object's getOutput method returns a Unicode string from result objects that have output values. This is an important consideration when running a tool such as GetCount, which provides a count of records in a table, or CalculateDefaultClusterTolerance, which provides a cluster tolerance value. To convert the value to the expected type, it will have to be converted from a unicode string using built-in Python functions such as int() or float().
result = arcpy.GetCount_management(fc) print result if result == 0: print fc + �?� is empty.�?� arcpy.delete_management(fc)
result = arcpy.GetCount_management(lyr) count = int(result.getOutput(0)) if count == 0: arcpy.mapping.RemoveLayer(df, lyr) print "Removing " + lyr else: print "Keeping " + lyr
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.