9

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

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

4

3 回答 3

14

使用我的 dbf 模块,您可以创建临时索引,然后使用这些索引进行搜索:

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

创建索引可能需要几秒钟,但之后的搜索速度非常快。

于 2011-07-13T16:41:05.197 回答
2

很有可能,您的性能受 I/O 限制多于 CPU 限制。因此,加快搜索速度的最佳方法是优化您的搜索。您可能想要建立某种索引,无论您的搜索谓词是什么。

于 2010-03-03T23:34:22.153 回答
1

如果您使用的是 Windows,您可以将odbc模块与Visual FoxPro ODBC 驱动程序结合使用

于 2010-03-03T23:10:48.553 回答