9

大きな DBF ファイル (~700MB) があります。Pythonスクリプトを使用して、そこから数行だけ選択したいと思います。dbfpy は、このタイプのデータベースを開くことができる優れたモジュールであることがわかりましたが、今のところクエリ機能は見つかりませんでした。Python からすべての要素を反復処理するのは、単純に遅すぎます。

妥当な時間内に Python でやりたいことを実行できますか?

4

3 に答える 3

14

私の 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',))

インデックスの作成には数秒かかる場合がありますが、その後の検索は非常に高速です。

于 2011-07-13T16:41:05.197 に答える
2

おそらく、パフォーマンスは CPU バウンドよりも I/O バウンドの方が多いでしょう。そのため、検索を高速化する最善の方法は、検索を最適化することです。おそらく、検索述語が何であれ、何らかの種類のインデックスを作成したいと思うでしょう。

于 2010-03-03T23:34:22.153 に答える
1

Windows を使用している場合は、odbcモジュールをVisual FoxPro ODBC ドライバーと組み合わせて使用​​できます。

于 2010-03-03T23:10:48.553 に答える