Как реализовать быстрый поиск в .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)
Но не знаю как это правильно реализовать. Возможно кто-то мне поможет в этом.