dbfpy python foxpro dbf visual-foxpro

dbfpy - ¿Cuál es la forma más fácil de leer un archivo DBF de FoxPro desde Python?



visual-foxpro (6)

Yo prefiero dbfpy . Es compatible con la lectura y escritura de archivos .DBF y puede hacer frente a la mayoría de las variaciones del formato. Es la única implementación que he encontrado que puede leer y escribir los archivos DBF heredados de algunos sistemas anteriores con los que he trabajado.

Tengo un montón de archivos DBF FoxPro (VFP9) en mi sistema Ubuntu, ¿hay una biblioteca para abrirlos en Python? Solo necesito leerlos y, preferiblemente, también tendré acceso a los campos memo.

Actualización : Gracias @cnu, utilicé dbf.py de Yusdi Santoso y funciona muy bien. Uno gotcha: La extensión del nombre de archivo memo debe ser minúscula, es decir, .fpt , no .FPT que era cómo el nombre de archivo provenía de Windows.



Si todavía está revisando esto, tengo un convertidor de GPL FoxPro a PostgreSQL en https://github.com/kstrauser/pgdbf . Lo usamos para copiar rutinariamente nuestras tablas en PostgreSQL para informes rápidos.


Pude leer un archivo DBF (con los archivos asociados BAK, CDX, FBT, TBK **) usando el paquete dbf de PyPI http://pypi.python.org/pypi/dbf . Soy nuevo en Python y no sé nada sobre los archivos DBF, pero funcionó fácilmente para leer un archivo DBF del negocio de mi novia (creado con una aplicación POS de tienda de música llamada AIMsi).

Después de instalar el paquete dbf (utilicé aptitude e instalé dbf versión 0.88, creo), el siguiente código python funcionó:

from dbf import * test = Table("testfile.dbf") for record in test: print record x = raw_input("") # to pause between showing records

Es todo lo que sé por el momento, pero espero que sea un comienzo útil para otra persona que encuentre esta pregunta.

21 de abril de 2012 SJK Edit: Por el comentario de Ethan Furman, debo señalar que en realidad no sé cuál de los archivos de datos era necesario, además del archivo DBF. La primera vez que ejecuté el script, con solo DBF disponible, me quejé de un archivo de soporte faltante. Entonces, acabo de copiar sobre BAK, CDX, FPT (no FBT como dije antes de editar), archivos TBK y luego funcionó.



Es 2016 ahora y tuve que jugar con el paquete dbf para que funcione. Aquí hay una versión de python3 para exportar un archivo dbf a un csv

import dbf d=dbf.Table(''mydbf.dbf'') d.open() dbf.export(d, filename=''mydf_exported.csv'', format=''csv'', header=True)

Tuve un error unicode al principio, pero lo solucioné al desactivar los memos.

import dbf d=dbf.Table(''mydbf.dbf'', ignore_memos=True) d.open() dbf.export(d, filename=''mydf_exported.csv'', format=''csv'', header=True)