14

I'm writing a python script, I've got an mxd and its workspace is a geodatabase file with all the files I need into. The problem I'm encountering in testing and writing code is that, despite of the command:

arcpy.env.overwriteOutput=True

all the files contained in geodatabase fail to overwrite. There's a way to work around this?

  • In ArcMap, did you check the "Overwrite the outputs of geoprocessing operations" in Geoprocessing>Geoprocessing Options? – Baltok Oct 4 '12 at 15:25
  • yes, I did. But didn't work. – Annalisa Minelli Oct 4 '12 at 15:43
  • 3
    Are you aware of any schema locks on your data? That can prevent overwriting as well. File and Personal Geodatabases are particularly sensitive to this, because if one feature class has a lock, it locks the whole geodatabase. – Baltok Oct 4 '12 at 16:03
  • 2
    When you say that "all the files contained in the geodatabase fail to overwrite", do you mean the script fails or it completes but just does not overwrite the featureclasses which it should? – Chad Cooper Oct 4 '12 at 16:20
  • try to run your code from a python IDE like PyScripter, then close ArcMap. – geogeek Oct 4 '12 at 20:10
18

If I recall correctly there are certain situations for which overwriteOutput won't work. In that case use the following code prior to writing out new files:

if arcpy.Exists(fileInQuestion):
    arcpy.Delete_management(fileInQuestion)
| improve this answer | |
2

Make sure the file geodatabase is not compressed i.e., read only.

| improve this answer | |
0

I was also having this problem and the comment about the schema locks really helped. If you have an mxd with that feature class on it, it locks that feature class so it cannot be deleted. If you just exit the mxd that contains that feature class and run the same overwrite code, it seems to work.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.