9
votes

Python: interrogation rapide dans un fichier big DBF (xbase)

J'ai un gros fichier DBF (~ 700 Mo). J'aimerais seulement sélectionner quelques lignes à partir de celui-ci à l'aide d'un script Python. J'ai vu que DBFPY est un joli module qui permet d'ouvrir ce type de base de données, mais pour l'instant, je n'ai trouvé aucune capacité de requête. Itération à travers tous les éléments de Python est tout simplement trop lent.

Puis-je faire ce que je veux de Python dans un délai raisonnable?


0 commentaires

3 Réponses :


1
votes

Si vous utilisez Windows, vous pouvez utiliser le module ODBC En combinaison avec le pilote Visual FoxPro ODBC


0 commentaires

2
votes

chances sont, votre performance est plus d'E / S liée à la CPU liée. En tant que tel, la meilleure façon de la accélérer est d'optimiser votre recherche. Vous voulez probablement construire une sorte d'index frappé par le prédicat de votre recherche.


0 commentaires

14
votes

en utilisant Mon module DBF Vous pouvez créer des index temporaires, puis rechercher à l'aide de ceux:

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',))


0 commentaires