2 votos

OGR DeleteDataSource no funciona correctamente en Python

Tengo un pequeño Python script que se supone que borra un shapefile en caso de que el archivo esté vacío.

import sys
from osgeo import ogr

drv = ogr.GetDriverByName("ESRI Shapefile")
ds = drv.Open(inData)
if ds is None:
    print "Could not open file."
    sys.exit(1)

lyr = ds.GetLayer()  

if lyr.GetFeatureCount() == 0:
    drv.DeleteDataSource(inData)

todo parece funcionar bien. El shapefile consiste en

  • shapefile.dbf
  • shapefile.prj
  • shapefile.shp
  • shapefile.shx

mientras que sólo se eliminan los archivos *.prj y *.shx. Los archivos *.dbf y *.shp no se tocan. ¿Hay algo que se me escapa?

2voto

Terence Simpson Puntos 976

Encontró el problema:

los archivos seguían ocupados desde la comprobación si contiene geometrías.

    ds=None
    lyr=None

El problema se soluciona estableciendo ambas variables como None antes de borrar el archivo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X