Al fin luego de tanto trabajar ya hallamos el resultado de esta dificultad que algunos de nuestros usuarios de nuestro espacio presentan. Si deseas compartir algo puedes compartir tu información.
Solución:
También puede usar OGR SQL ALTER TABLE
declaración a DROP
la columna directamente a través de ExecuteSQL()
:
from osgeo import gdal
ds = gdal.OpenEx("my_shp.shp", gdal.OF_VECTOR | gdal.OF_UPDATE)
ds.ExecuteSQL("ALTER TABLE my_shp DROP COLUMN my_field")
Por lo general, veo que esto se hace creando una copia del archivo de forma, pero especificando qué campos incluir en la copia. Una vez que se realiza una copia, es bastante fácil eliminar el archivo original y cambiar el nombre de la copia.
Aquí hay una forma simple que no es Python. De lo contrario, creo que debería poder crear una solución basada en este ejemplo de Python.
Para eliminar una columna de la attribute tabla de un shapefile, usé esto:
dataSource = driver.Open("MyShapefile.shp", 1)
layer = dataSource.GetLayer()
layer.DeleteField(4)
donde 4 es el índice de la columna que quiero eliminar (a partir de 0).
Espero que haya sido lo que pediste.
Valoraciones y reseñas
Si piensas que te ha resultado de ayuda nuestro post, sería de mucha ayuda si lo compartieras con otros programadores de esta manera nos ayudas a extender nuestra información.