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.
Consulte http://groups.google.com/group/python-dbase
Actualmente es compatible con los archivos db dBase III y Visual Foxpro 6.0 ... no estoy seguro si el diseño del archivo cambia en VFP 9 o no ...
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ó.
Puedes probar esta receta en estado activo .
También hay un módulo DBFReader que puedes probar.
Para soporte para campos memo
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)