[Python-es] STRUCT ERROR DBF

Manuel Estevez stvzito en gmail.com
Jue Sep 12 01:31:42 CEST 2013


Saludos A todos

Vayámonos directo al punto, debo extraer información de unos DBF (si lo 
sé poco faltó para que fueran tarjetas perforadas), que es en lo que 
corre la aplicación del día a día y cargar la información a otra base de 
datos (MySQL).
Bueno el detalle es extraer la información precisamente ya que algunas 
tablas contienen campos del tipo MEMO , estuve probando con varias 
opciones que encontré por la web (pydbf, dbfpy, dbf y demdbf) y está 
última me funcionó para leer los "MEMOS".

Ahora bien, estuve haciendo pruebas en la consola de python (Python 
2.7.3 para windows x86), cuando tomé esos pequeñas pruebas y las 
unifiqué en un script indicaba el siguiente error:

    /struct.error: unpack requires a string argument of length 32/

Este es el código que estoy utilizando:

    # -*- coding: utf8 -*-
    #!/usr/bin/env python

    import os
    from demdbf import dbf

    def lee_archivo(file_):

         d_ = dbf()
         d_.open(file_)
         for rec_ in xrange(d_.recordCount-1):
             d_.read(rec_)

    if __name__ == '__main__':
         for root, dirs, files in os.walk('c:\\dbf_xls\\'):
             for file_ in files:
                 if file_.find('enc_')!= -1:
                     lee_archivo(os.path.join(root,file_))

Y aquí dejo demdbf.py (http://pastebin.com/SDmEfYGa )

Agradezco de antemano su ayuda.

Saludos desde México.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130911/50a0b3b2/attachment.html>


Más información sobre la lista de distribución Python-es