Как реализовать быстрый поиск в .DBF-файле (Visual Fox Pro) с помощью Python-3.x

Есть база данных с информацией о людях (фамилия, имя, отчество, дата рождения и т.д.). Файл в формате .DBF (Visual FoxPro). Мне нужно выполнить поиск по фамилии и вывести в терминал всех людей с такой фамилией. Это можно сделать с помощью модуля DBF путем перебора всех записей в цикле, но это долго:

import dbf

surname = "Петров"
table = dbf.Table('db.DBF')
table.open()
for rec in table:
    if surname == rec[3].strip(" "): # rec[3] - это фамилия
        print(rec[3], rec[4], rec[5]) # фамилия, имя, отчество

Находил похожую проблему в интернете, решение которой удалось выполнить с помощью создания временного индекса. Примерно так:

import dbf

surname = "Петров"
table = dbf.Table('db.DBF')
table.open()
idx = table.create_index(lambda rec: rec.famil)
match = idx.search(match=surname)

Но не знаю как это правильно реализовать. Возможно кто-то мне поможет в этом.


Ответы (0 шт):