2010-03-03 13 views
5

Büyük bir DBF dosyasına (~ 700MB) sahibim. Bir python betiği kullanarak sadece birkaç satır seçmek istiyorum. Dbfpy'nin bu tür bir veritabanını açmaya izin veren güzel bir modül olduğunu gördüm, ancak şimdilik herhangi bir sorgulama yeteneği bulamadım. Pitondan gelen tüm elementleri tekrarlamak çok yavaştır.Python: Büyük bir dbf (xbase) dosyasında hızlı sorgulama

Python'dan ne istediğimi makul bir sürede yapabilir miyim? Eğer Windows kullanıyorsanız

cevap

9

geçici dizin oluşturmak ve sonra bu kullanarak arama yapabilirsiniz my dbf module kullanma.

+1

Çok güzel modül! –

2

Şansı birlikte odbc modülünü kullanabilirsiniz, performans bağlı CPU daha G/Ç bağımlı olduğunu. Bu şekilde, hızlandırmanın en iyi yolu aramanızı optimize etmektir. Muhtemelen arama emriniz ne olursa olsun, bir çeşit indeks oluşturmak isteyebilirsiniz. Birkaç saniye sürebilir endeksi oluşturma

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

Ancak, aramalar bundan sonra son derece hızlı şunlardır:

İlgili konular