2010-03-03 98 views
5

我有一個很大的DBF文件(〜700MB)。我想使用python腳本只從它中選擇幾行。我已經看到,dbfpy是一個很好的模塊,可以打開這種類型的數據庫,但目前我還沒有發現任何查詢功能。遍歷python中的所有元素實在太慢了。Python:在一個大的dbf(xbase)文件中快速查詢

我可以在合理的時間內做我想從python中獲得的東西嗎?

回答

9

使用my dbf module您可以創建臨時索引,然後搜索使用這些:

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

創建索引可能需要幾秒鐘,但在那之後的搜索是非常快。

+1

非常酷的模塊! – 2011-07-14 11:17:15

2

機會是,你的表現更多的I /必然會比約束的CPU O操作。因此,加速它的最佳方式是優化您的搜索。你可能想要建立某種索引,不管你的搜索謂詞是什麼。