代码之家  ›  专栏  ›  技术社区  ›  static_rtti

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

  •  6
  • static_rtti  · 技术社区  · 14 年前

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

    我能在合理的时间内从python中做我想做的吗?

    3 回复  |  直到 9 年前
        1
  •  10
  •   Ethan Furman    13 年前

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

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

        2
  •  2
  •   Daniel Pryden    14 年前

    很可能,您的性能比CPU更受I/O限制。因此,加快搜索速度的最佳方法就是优化搜索。你可能想建立一种索引,不管你的搜索谓词是什么。

        3
  •  1
  •   PabloG    14 年前

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