我有一个大的DBF文件(~700MB)。我想使用python脚本从中选择几行。我已经看到dbfpy是一个很好的模块,允许打开这种类型的数据库,但是现在我还没有找到任何查询功能。迭代python中的所有元素实在太慢了。
我可以在合理的时间内从python中做我想做的事吗?
答案 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
结合使用