मैं वर्तमान में पायथन फ़ाइलों से पायथन 2.7 में 1 मिलियन पंक्तियों और 200 कॉलम (100mb से 1.6gb तक की फाइलें) के डेटा को पढ़ने की कोशिश कर रहा हूं। मैं 300,000 पंक्तियों के साथ फ़ाइलों के लिए यह (बहुत धीरे से) कर सकता हूं, लेकिन एक बार जब मैं ऊपर जाता हूं तो मुझे मेमोरी त्रुटियां मिलती हैं। मेरा कोड इस तरह दिखता है:
def getdata(filename, criteria):
data=[]
for criterion in criteria:
data.append(getstuff(filename, criteron))
return data
def getstuff(filename, criterion):
import csv
data=[]
with open(filename, "rb") as csvfile:
datareader=csv.reader(csvfile)
for row in datareader:
if row[3]=="column header":
data.append(row)
elif len(data)<2 and row[3]!=criterion:
pass
elif row[3]==criterion:
data.append(row)
else:
return data
गेटस्टफ फ़ंक्शन में अन्य क्लॉज़ का कारण यह है कि कसौटी पर खरा उतरने वाले सभी तत्वों को सीएसवी फ़ाइल में एक साथ सूचीबद्ध किया जाएगा, इसलिए मैं पाश को छोड़ देता हूं जब मुझे समय बचाने के लिए उन्हें मिलता है।
मेरे प्रश्न हैं:
बड़ी फ़ाइलों के साथ काम करने के लिए मैं इसे कैसे प्रबंधित कर सकता हूं?
क्या कोई तरीका है जिससे मैं इसे तेज कर सकूं?
मेरे कंप्यूटर में 8 जीबी रैम है, 64 बिट विंडोज 7 चल रहा है, और प्रोसेसर 3.40 गीगाहर्ट्ज है (निश्चित नहीं कि आपको कौन सी जानकारी चाहिए)।