I have a handy script tool that loops through a workspace and renames and copies shapefiles to a feature dataset. However, if there is a corrupted shapefile somewhere in the workspace the script fails and stops processing. How do you handle errors such as this? Is there a way to print the error file and continue processing the next shapefile in the for loop to completion?
import arcpy from arcpy import env # Allow overwriting of output env.overwriteOutput = True # Parameters env.workspace = arcpy.GetParameterAsText(0) state = arcpy.GetParameterAsText(1) gdb = arcpy.GetParameterAsText(2) # Get a list of shapefiles in folder fcs = arcpy.ListFeatureClasses() # Find the total count of shapefiles in list fcCount = len(fcs) # Set the progressor arcpy.SetProgressor("step", "Copying shapefiles to geodatabase...", 0,fcCount, 1) # For each shapefile, copy to a file geodatabase try: for shp in fcs: # Define name for the output points fc = str(state + shp[0:9]) # Update the progressor label for current shapefile arcpy.SetProgressorLabel("Loading " + shp + "...") # Copy the data arcpy.CopyFeatures_management(shp, str(gdb + "\\" + fc)) # Update the progressor position arcpy.SetProgressorPosition() except Exception as e: print "An error has occurred" print e arcpy.ResetProgressor()