Here is an updated answer based on a better understanding of your request. This code performs a union between the eraser and the erasee shapefiles and then selects the overlapping features and deletes them .It then deletes the unnecessary fields to maintain just the original fields from the original shapefiles. I clip the hydro layer first just to remove any extraneous features to avoid errors. In the future you could convert this to an arcgis tool so you can feed in the shapefiles as parameters as opposed to hardcoding the paths to the shapefiles. This worked on the sample dataset I had. Let meknow if it works for you.
import arcpy
import os
#delete any data tha might be stored in memory
arcpy.Delete_management("in_memory")
#set workspace to where all your shapefiles are
arcpy.env.workspace="c:/data"
#define where the hydro shapefile is located, ideally in a different folder than the others
hydroshp="c:/mydata/hydro.shp"
fcs=arcpy.ListFeatureClasses()
for fc in fcs:
#create an empty list to be populated with the original shapefile's field names
fieldnames=[]
#List all fields in the shapefile and populate the fieldnames list with their names
fields=arcpy.ListFields(fc)
for field in fields:
fieldnames.append(field.name)
#define layer name for each shapefile
fclayer=fc.rstrip(".shp")
#create output files for the clip and the union layers
fcClip=os.path.join("in_memory",fclayer+"clip")
fcUnion=fclayer+"union.shp"#os.path.join("in_memory",fclayer+"union")
#clip the shapefile using the hydro layer
arcpy.Clip_analysis(fc,hydroshp,fcClip)
#create a union of the clipped hydro and the shapefile
arcpy.Union_analysis([fc,fcClip],fcUnion,"ALL")
#delete any unnecessary fields from your union shapefile
unionfields=arcpy.ListFields(fcUnion)
for ufield in unionfields:
if ufield.name not in fieldnames:
arcpy.DeleteField_management(fcUnion,ufield.name)
#Create layer file so you can perform a selection on it
arcpy.MakeFeatureLayer_management(fcUnion,fclayer)
arcpy.SelectLayerByLocation_management(fclayer,"WITHIN",fcClip)
#Check if there are any selected features so you don't accidentally delete all the features.
desc=arcpy.Describe(fclayer)
if desc.FIDSet != "":
arcpy.DeleteFeatures_management(fclayer)
print "done!!"