Python:在大型dbf(xbase)文件中快速查询

时间:2010-03-03 16:38:47

标签: python performance python-3.x dbf xbase

我有一个大的DBF文件(~700MB)。我想使用python脚本从中选择几行。我已经看到dbfpy是一个很好的模块,允许打开这种类型的数据库,但是现在我还没有找到任何查询功能。迭代python中的所有元素实在太慢了。

我可以在合理的时间内从python中做我想做的事吗?

3 个答案:

答案 0 :(得分:11)

使用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 :(得分:2)

很可能,您的性能比CPU绑定的I / O限制更多。因此,加快速度的最佳方法是优化搜索。您可能希望构建某种类型的索引,无论您的搜索谓词是什么。

答案 2 :(得分:1)

如果您使用的是Windows,则可以将odbc模块与Visual FoxPro ODBC Driver

结合使用