[GIS] Overwriting shapefile using ArcPy

arcgis-10.0arcpyshapefile

I want to be able to overwrite a shapefile if it exists. I think my code needs some tweaking. I am using v10. I am able to delete the actual .shp file but the .dbf, .shx, etc still remain, so if I try to overwrite again, I get an error.

How can I remove all the files associated with the shapefile?

DoesItExist = True
geometry_type = "POLYGON"
print "Your shapefile is being generated."
out_path = raw_input("Enter in path to save shape file: ")
out_name = raw_input("Enter in name of shape file: ")

while DoesItExist == True: 
    if (os.path.exists(os.path.join(out_path, out_name))):
        print "This file already exists. Do you wish to overwrite it?"
         choice = raw_input("Y/N:")
    if (choice == 'Y' or choice == 'y'):
        print "File will be over written"
        os.remove(os.path.join(out_path, out_name))
        #arcpy.CreateFeatureclass_management(out_path, out_name, geometry_type)
        DoesItExist = False
    else:
        print "Choose new file name/location!"
        out_path = raw_input("Enter in file path: ")
        out_name = raw_input("Enter in file name: ")

else:
    print "Shapefile created in: " + str(os.path.join(out_path, out_name))
    arcpy.CreateFeatureclass_management(out_path, out_name, geometry_type)
    DoesItExist = False

Best Answer

You shouldn't have to delete the shapefile. Just add the following lines to your script:

import arcpy
arcpy.env.overwriteOutput = True

That will allow arcpy.CreateFeatureclass_management to overwrite the existing shapefile with all of its associated files (dbf, shx, prj etc.).