大きな DBF ファイル (~700MB) があります。Pythonスクリプトを使用して、そこから数行だけ選択したいと思います。dbfpy は、このタイプのデータベースを開くことができる優れたモジュールであることがわかりましたが、今のところクエリ機能は見つかりませんでした。Python からすべての要素を反復処理するのは、単純に遅すぎます。
妥当な時間内に Python でやりたいことを実行できますか?
大きな DBF ファイル (~700MB) があります。Pythonスクリプトを使用して、そこから数行だけ選択したいと思います。dbfpy は、このタイプのデータベースを開くことができる優れたモジュールであることがわかりましたが、今のところクエリ機能は見つかりませんでした。Python からすべての要素を反復処理するのは、単純に遅すぎます。
妥当な時間内に Python でやりたいことを実行できますか?
私の dbf モジュールを使用すると、一時インデックスを作成し、それらを使用して検索できます。
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',))
インデックスの作成には数秒かかる場合がありますが、その後の検索は非常に高速です。
おそらく、パフォーマンスは CPU バウンドよりも I/O バウンドの方が多いでしょう。そのため、検索を高速化する最善の方法は、検索を最適化することです。おそらく、検索述語が何であれ、何らかの種類のインデックスを作成したいと思うでしょう。
Windows を使用している場合は、odbcモジュールをVisual FoxPro ODBC ドライバーと組み合わせて使用できます。