Qual é a maneira mais fácil de ler um arquivo FoxPro DBF de Python?

votos
21

Eu tenho um monte de arquivos FoxPro (VFP9) DBF no meu sistema Ubuntu, há uma biblioteca para abrir estes em Python? Eu só preciso lê-los, e que de preferência têm acesso aos campos de memorando também.

Atualização : Graças @cnu, eu usei Yusdi Santoso de dbf.pye ele funciona muito bem. Uma pegadinha: A extensão de nome de arquivo de memorando deve estar em minúsculas, ou seja .fpt, não .FPTque foi a forma como o nome veio a partir do Windows.

Publicado 01/09/2008 em 07:45
fonte usuário
Em outras línguas...                            


6 respostas

votos
16

Eu prefiro dbfpy . Ele suporta tanto leitura e escrita de .DBFarquivos e pode lidar com a maioria das variações do formato. É a única implementação Descobri que poderia ler e gravar os arquivos legado DBF de alguns sistemas mais antigos com quem trabalhei.

Respondeu 01/09/2008 em 14:12
fonte usuário

votos
9

Se você ainda está verificando isso, eu tenho um conversor GPL FoxPro-to-PostgreSQL em https://github.com/kstrauser/pgdbf . Nós usá-lo para copiar rotineiramente nossas mesas em PostgreSQL para o relatório rápido.

Respondeu 17/09/2008 em 19:59
fonte usuário

votos
8

Eu era capaz de ler um arquivo DBF (com Associated BAK, CDX, FBT, arquivos TBK **) usando o pacote dbf de PyPI http://pypi.python.org/pypi/dbf . Eu sou novo para python e não sabe nada sobre arquivos DBF, mas funcionou facilmente para ler um arquivo DBF de negócios da minha namorada (criado com um aplicativo de música loja POS chamado AIMsi).

Depois de instalar o pacote de dbf (eu usei aptidão e instalado dbf versão 0.88 eu acho), o seguinte código python trabalhou:

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

Isso é tudo o que sei por enquanto, mas espero que é um começo útil para outra pessoa que encontra esta pergunta!

21 de abril de 2012 SJK Edit: Per comentário de Ethan Furman, gostaria de salientar que eu realmente não sei qual dos arquivos de dados eram necessários, além do arquivo DBF. A primeira vez que executou o script, apenas com o DBF disponível, ele queixou-se de um arquivo de suporte faltando. Então, eu simplesmente copiou sobre o BAK, CDX, FPT (não FBT como eu disse antes edição), arquivos TBK e depois ele trabalhou.

Respondeu 21/04/2012 em 00:33
fonte usuário

votos
7

Você pode tentar esta receita no Estado ativo .

Há também um módulo DBFReader que você pode tentar.

Para obter suporte para campos de memorando .

Respondeu 01/09/2008 em 08:02
fonte usuário

votos
5

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

Atualmente ele suporta arquivos db Visual FoxPro 6.0 dBase III e ... não tenho certeza se a mudança de layout de arquivo no VFP 9 ou não ...

Respondeu 23/02/2009 em 18:08
fonte usuário

votos
4

É 2016 agora e eu tive que mexer com o pacote de dbf para fazê-lo funcionar. Aqui está uma versão python3 apenas exportar um arquivo dbf para um arquivo CSV

import dbf

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

Eu tinha algum erro unicode no início, mas ficou em torno de que, desligando memos.

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
Respondeu 02/08/2016 em 21:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more