Esta duda se puede resolver de diferentes formas, pero te enseñamos la que en nuestra opinión es la solución más completa.
Solución:
Como todos los programadores de Python, voy a
- primero vea el índice del paquete Python para archivos dbf (se especifica si no son compatibles con Python 3 o Python 2). dbfread, por ejemplo, funciona con Python 2.x y Python 3.x.
- Se pueden usar módulos geoespaciales como GDAL/OGR, pero es necesario compilarlos (Linux, Mac OS X). Para los usuarios de Windows, Christoph Gohlke proporciona los binarios no oficiales de Windows para los paquetes de extensión de Python con GDAL/OGR (Python 2.x y Python 3.x)
- y un módulo geoespacial de Python puro como Pyshp (Python 2.x o 3.x) también puede leer archivos dbf
- y por último, si conoces la estructura de un archivo dbf (Data File Header Structure for the dBASE Version 7 Table File, por ejemplo), no es complicado programar un lector en Python puro con el módulo struct
Adapté esta función para python 2,7 a python 3,x, funciona para mí, pero no hay garantía … 🙂
def dbfreader(f): #Found on http://code.activestate.com/recipes/362715-dbf-
reader-and-writer/ - by Raymond Hettinger
"""Returns an iterator over records in a Xbase DBF file.
The first row returned contains the field names.
The second row contains field specs: (type, size, decimal places).
Subsequent rows contain the data records.
If a record is marked as deleted, it is skipped.
File should be opened for binary reads.
Adapted for python 3,5 20-09-2017
"""
# See DBF format spec at:
# http://www.pgts.com.au/download/public/xbase.htm#DBF_STRUCT
numrec, lenheader = struct.unpack('