Python:Rápida consulta em um grande dbf (xbase) arquivo
-
24-09-2019 - |
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?
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