Pergunta

Eu tenho um grande arquivo DBF (~700 MB).Eu gostaria de selecionar apenas algumas linhas de um script python.Eu vi que dbfpy é um bom módulo que permite abrir este tipo de banco de dados, mas agora eu não encontrei nenhum consultando o recurso.Iterar através de todos os elementos do python é simplesmente muito lento.

Posso fazer o que eu quero de python em um tempo razoável?

Foi útil?

Solução

Usando Meu módulo DBF Você pode criar índices temporários e pesquisar usando -os:

import dbf

table = dbf.Table('big.dbf')
index = table.create_index(lambda rec: rec.field) # field should be actual field name

records = index.search(match=('value',))

Criar o índice pode levar alguns segundos, mas as pesquisas depois disso são extremamente rápidas.

Outras dicas

As chances são de que seu desempenho esteja mais ligado à E/S do que a CPU vinculada. Como tal, a melhor maneira de acelerar é otimizar sua pesquisa. Você provavelmente deseja criar algum tipo de índice digitado pelo seu predicado de pesquisa.

Se você estiver usando Windows, você pode usar o odbc módulo em combinação com o Driver ODBC para Visual FoxPro

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top