Frage

Ich habe eine große DBF-Datei (~ 700 MB). Ich möchte nur ein paar Zeilen aus, um sie auszuwählen einen Python-Skript. Ich habe gesehen, dass dbfpy ein schönes Modul, das diese Art von Datenbank öffnen kann, aber jetzt habe ich keine abfragenden Fähigkeit gefunden. Iterieren durch alle Elemente aus Python ist einfach zu langsam.

Kann ich tun, was ich von Python will in einer angemessenen Zeit?

War es hilfreich?

Lösung

Mit meinem dbf Modul temporärem Indizes erstellen und dann suchen diejenigen mit:

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

den Index Erstellen von ein paar Sekunden dauern kann, aber die Suche danach ist extrem schnell.

Andere Tipps

Die Chancen stehen gut, Ihre Leistung ist mehr I / O-gebunden als CPU gebunden. Als solches ist der beste Weg, es zu beschleunigen ist Ihre Suche zu optimieren. Sie wollen wahrscheinlich eine Art von Index von was auch immer Ihr Suchprädikat ist verkeilt zu bauen.

Wenn Sie Windows verwenden, können Sie nutzen die odbc Modul in Kombination mit dem Visual FoxPro ODBC-Treiber

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top