Descripción

Esta receta es un ejemplo de cómo acceder nativamente desde Python a bases de datos en formato DBF (dBase, Foxpro, Clipper, etc.), sin necesidad de ODBC u otras herramientas.

Utiliza DbfPy. Para instalar la librería, bajarla y descomprimirla con 7-Zip en el directorio de la aplicación o en site-packages (C:python25libsite-packages o similar).

Nota: Para nuevos proyectos utilizar una base de datos relacional (ej. PostgreSQL o MySQL), o usar shelf para guardar objetos python fácilmente.

Ejemplo:

Ejemplo original traducido y ajustado:

# -*- coding: iso-8859-1 -*-

from dbfpy.dbf import Dbf, DbfRecord

# abro el archivo country.dbf(viene como ejemplo dentro de la libreria)
dbf1 = Dbf()
dbf1.openFile('dbfpy/county.dbf', readOnly=0)
dbf1.reportOn()
print 'registros de ejemplo:'

# recorro los registros:
for registro in dbf1:
    # recorro los campos:
    for nombre_campo in dbf1.fieldNames():
        print '%s:\t %s' % (nombre_campo, registro[nombre_campo])
    print


# agregar un registro (campos COUNTYNO, COUNTYNAME, COUNTYABBR)
reg=DbfRecord(dbf1)
reg['COUNTYNO']=116
reg['COUNTYNAME']="Prueba"
reg['COUNTYABBR']="PRUE"
#reg['FECHA']=(2000,1,12)
reg.store()


# cierro el archivo
dbf1.close()

Autor / Autores:

MarianoReingart