Pergunta

Eu tenho vários arquivos DBF FoxPro (VFP9) no meu sistema Ubuntu. Existe uma biblioteca para abri-los em Python?Eu só preciso lê-los e, de preferência, também teria acesso aos campos do memorando.

Atualizar:Obrigado @cnu, usei o do Yusdi Santoso dbf.py e funciona muito bem.Uma pegadinha:A extensão do nome do arquivo de memorando deve ser minúscula, ou seja, .fpt, não .FPT foi assim que o nome do arquivo veio do Windows.

Foi útil?

Solução

Você pode tentar isso receita no estado ativo.

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

Para suporte para campos de memorando.

Outras dicas

eu prefiro dbfpy.Suporta leitura e escrita de .DBF arquivos e pode lidar com a maioria das variações do formato.É a única implementação que encontrei que pode ler e gravar arquivos DBF legados de alguns sistemas mais antigos com os quais trabalhei.

Se você ainda está verificando isso, tenho um conversor GPL FoxPro para PostgreSQL em https://github.com/kstrauser/pgdbf .Nós o usamos para copiar rotineiramente nossas tabelas no PostgreSQL para relatórios rápidos.

Consegui ler um arquivo DBF (com arquivos BAK, CDX, FBT, TBK associados**) usando o pacote dbf do PyPI http://pypi.python.org/pypi/dbf .Sou novo em python e não sei nada sobre arquivos DBF, mas funcionou facilmente para ler um arquivo DBF da empresa da minha namorada (criado com um aplicativo POS de loja de música chamado AIMsi).

Depois de instalar o pacote dbf (usei o aptitude e instalei o dbf versão 0.88, eu acho), o seguinte código python funcionou:

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

Isso é tudo que sei por enquanto, mas espero que seja um começo útil para alguém que encontre essa pergunta!

21 de abril de 2012 Edição SJK:De acordo com o comentário de Ethan Furman, devo salientar que na verdade não sei qual foram necessários arquivos de dados, além do arquivo DBF.A primeira vez que executei o script, com apenas o DBF disponível, ele reclamou da falta de um arquivo de suporte.Então, acabei de copiar os arquivos BAK, CDX, FPT (não FBT como disse antes da edição), TBK e funcionou.

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

Atualmente suporta arquivos dBase III e Visual Foxpro 6.0 db...não tenho certeza se o layout do arquivo muda no VFP 9 ou não ...

Agora é 2016 e tive que mexer no pacote dbf para fazê-lo funcionar.Aqui está uma versão python3 para exportar apenas um arquivo dbf para um csv

import dbf

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

Ocorreu algum erro de unicode no início, mas resolvi isso desativando os memorandos.

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top