J'ai un gros fichier DBF (~ 700MB). Je voudrais en sélectionner seulement quelques lignes en utilisant un script python. J'ai vu que dbfpy est un bon module qui permet d'ouvrir ce type de base de données, mais pour l'instant je n'ai trouvé aucune fonctionnalité d'interrogation. Itérer à travers tous les éléments de Python est simplement trop lent. Puis-je faire ce que je veux de Python dans un délai raisonnable?Python: interrogation rapide dans un gros fichier dbf (xbase)
5
A
Répondre
9
En utilisant my dbf module vous pouvez créer des index temporaires et recherche à l'aide ceux-ci:
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',))
création de l'index peut prendre quelques secondes, mais les recherches après sont extrêmement rapides.
1
Si vous utilisez Windows, vous pouvez utiliser le module odbc en combinaison avec les Visual FoxPro ODBC Driver
2
Il y a des chances, votre performance est plus E/S lié que CPU lié. En tant que tel, le meilleur moyen de l'accélérer est d'optimiser votre recherche. Vous voulez probablement construire une sorte d'index avec n'importe quel prédicat de recherche.
Module très cool! –