Способ эффективного чтения файлов DBF python - PullRequest
0 голосов
/ 27 мая 2020

** У меня есть следующий метод открытия файлов 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

1 Ответ

0 голосов
/ 27 мая 2020

Ваш код должен работать. Медленность может быть вызвана проблемой «Schlemiel the Painter» в l oop (тот факт, что вы используете load = True, делает это маловероятным, но это единственная возможность, которую я вижу). Попробуйте переписать его так:

для записи в table_ventas: table_new.append (record)

Это должно использовать стандартный итератор для объекта DBF, который должен уже возвращать OrderedDict.

Помимо этого, вы можете попробовать перекомпилировать DBF в какой-либо другой формат, доступ к которому более эффективен, и посмотреть, улучшится ли общее время.

...