2010-03-03 7 views
5

मेरे पास एक बड़ी डीबीएफ फ़ाइल (~ 700 एमबी) है। मैं एक पायथन लिपि का उपयोग कर केवल कुछ लाइनों का चयन करना चाहता हूं। मैंने देखा है कि dbfpy एक अच्छा मॉड्यूल है जो इस प्रकार के डेटाबेस को खोलने की अनुमति देता है, लेकिन अभी के लिए मुझे कोई क्वेरीिंग क्षमता नहीं मिली है। अजगर से सभी तत्वों के माध्यम से छेड़छाड़ बस बहुत धीमी है।पायथन: एक बड़ी डीबीएफ (xbase) फ़ाइल में तेजी से पूछताछ

क्या मैं एक उचित समय में पाइथन से क्या कर सकता हूं?

उत्तर

9

my dbf module का उपयोग करके आप अस्थायी अनुक्रमणिका बना सकते हैं और फिर उन का उपयोग करके खोज:

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

सूचकांक बनाना कुछ सेकंड लग सकता है, लेकिन खोज के बाद बेहद जल्दी कर रहे हैं।

+1

बहुत अच्छा मॉड्यूल! –

2

संभावना के साथ संयोजन में odbc मॉड्यूल का उपयोग कर सकते हैं, अपने प्रदर्शन में अधिक आई/ओ बाध्य सीपीयू से बाध्य है। इस प्रकार, इसे गति देने का सबसे अच्छा तरीका आपकी खोज को अनुकूलित करना है। आप शायद अपनी खोज की भविष्यवाणी के अनुसार किसी प्रकार की अनुक्रमणिका बनाना चाहते हैं।

संबंधित मुद्दे