首页 > 解决方案 > 高效读取DBF文件的方法python

问题描述

**我有以下方法来打开 DBF 文件,但它执行起来很慢,我正在寻找打开大型 DBF 文件,我需要提高我的方法。需要帮忙。谢谢**

def lectura_tablas(nombre_tabla):
    table_name=nombre_tabla
    table_ventas = DBF(f'{table_name}', load=True,ignore_missing_memofile=True)
    table_new=[]
    for x in range(0,len(table_ventas.records)):
        table_new.append(OrderedDict(table_ventas.records[x]))
    dataframe= pd.DataFrame(table_new)
    return dataframe

标签: pythonpandasfunctiondbf

解决方案


你的代码应该可以工作。缓慢可能是由循环中的“Schlemiel the Painter”问题引起的(您使用 load=True 的事实使得这不太可能,但这是我看到的唯一可能性)。尝试像这样重写它:

用于 table_ventas 中的记录:table_new.append(record)

应该在 DBF 对象上使用标准迭代器,它应该已经返回一个OrderedDict.

除此之外,您可能会尝试将 DBF 重新编译为更有效访问的其他格式,并查看总体时间是否有所改善。


推荐阅读