Domanda

Ho un sacco di file DBF FoxPro (VFP9) sul mio sistema Ubuntu, esiste una libreria per aprirli in Python?Devo solo leggerli e preferirei avere accesso anche ai campi memo.

Aggiornamento:Grazie @cnu, ho usato quello di Yusdi Santoso dbf.py e funziona bene.Un problema:L'estensione del nome del file memo deve essere minuscola, ad es. .fpt, non .FPT ed è così che il nome del file è arrivato da Windows.

È stato utile?

Soluzione

Puoi provare questo ricetta sullo stato attivo.

C'è anche un Modulo DBFReader che puoi provare.

Per il supporto per campi promemoria.

Altri suggerimenti

preferisco dbfpy.Supporta sia la lettura che la scrittura di .DBF file e possono gestire la maggior parte delle variazioni del formato.È l'unica implementazione che ho trovato in grado sia di leggere che di scrivere i file DBF legacy di alcuni sistemi precedenti con cui ho lavorato.

Se lo stai ancora controllando, ho un convertitore GPL FoxPro-to-PostgreSQL su https://github.com/kstrauser/pgdbf .Lo usiamo per copiare regolarmente le nostre tabelle in PostgreSQL per un reporting rapido.

Sono stato in grado di leggere un file DBF (con file BAK, CDX, FBT, TBK associati**) utilizzando il pacchetto dbf di PyPI http://pypi.python.org/pypi/dbf .Sono nuovo in Python e non so nulla dei file DBF, ma ha funzionato facilmente per leggere un file DBF dall'attività della mia ragazza (creato con un'applicazione POS di un negozio di musica chiamata AIMsi).

Dopo aver installato il pacchetto dbf (ho usato aptitude e ho installato dbf versione 0.88, credo), il seguente codice Python ha funzionato:

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

Questo è tutto quello che so per ora, ma spero che sia un inizio utile per qualcun altro che trova questa domanda!

21 aprile 2012 SJK Modifica:Secondo il commento di Ethan Furman, dovrei sottolineare che in realtà non lo so Quale dei file di dati erano necessari, oltre al file DBF.La prima volta che ho eseguito lo script, con solo il DBF disponibile, si lamentava della mancanza di un file di supporto.Quindi, ho semplicemente copiato i file BAK, CDX, FPT (non FBT come ho detto prima della modifica), TBK e poi ha funzionato.

Guardare http://groups.google.com/group/python-dbase

Attualmente supporta file db dBase III e Visual Foxpro 6.0...non sono sicuro se il layout del file cambia in VFP 9 o meno...

Adesso è il 2016 e ho dovuto armeggiare con il pacchetto dbf per farlo funzionare.Ecco una versione Python3 per esportare semplicemente un file dbf in un CSV

import dbf

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

All'inizio ho avuto qualche errore Unicode, ma ho risolto il problema disattivando i promemoria.

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top