¿Espera que ArcPy sobrescriba archivos en un archivo de geodatabase?


13

Estoy escribiendo un script de Python, tengo un mxd y su espacio de trabajo es un archivo de geodatabase con todos los archivos que necesito. El problema que encuentro al probar y escribir código es que, a pesar del comando:

arcpy.env.overwriteOutput=True

Todos los archivos contenidos en la geodatabase no se pueden sobrescribir. ¿Hay alguna forma de evitar esto?


En ArcMap, ¿marcó la casilla "Sobrescribir las salidas de las operaciones de geoprocesamiento" en Geoprocesamiento> Opciones de geoprocesamiento?
Baltok

Sí, lo hice. Pero no funcionó.
Annalisa Minelli

3
¿Conoce algún bloqueo de esquema en sus datos? Eso también puede evitar sobrescribir. Las geodatabases de archivos y personales son particularmente sensibles a esto, porque si una clase de entidad tiene un bloqueo, bloquea toda la geodatabase.
Baltok

2
Cuando dice que "todos los archivos contenidos en la geodatabase no se pueden sobrescribir", ¿quiere decir que la secuencia de comandos falla o se completa pero simplemente no sobrescribe las clases de características que debería?
Chad Cooper el

intente ejecutar su código desde un IDE de Python como PyScripter, luego cierre ArcMap.
geogeek

Respuestas:


16

Si recuerdo correctamente, hay ciertas situaciones en las que overwriteOutput no funcionará. En ese caso, use el siguiente código antes de escribir nuevos archivos:

if arcpy.Exists(fileInQuestion):
    arcpy.Delete_management(fileInQuestion)

1

Asegúrese de que la geodatabase de archivos no esté comprimida, es decir, de solo lectura.


0

También estaba teniendo este problema y el comentario sobre los bloqueos de esquema realmente ayudó. Si tiene un mxd con esa clase de entidad, bloquea esa clase de entidad para que no se pueda eliminar. Si acaba de salir del mxd que contiene esa clase de entidad y ejecuta el mismo código de sobrescritura, parece funcionar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.