আমি বর্তমানে পাইথন ২.7-তে 1 মিলিয়ন সারি এবং 200 কলাম (ফাইল 100 মিমি থেকে 1.6 জিবি পর্যন্ত) এর সাথে .csv ফাইল থেকে ডেটা পড়ার চেষ্টা করছি। আমি 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
গেসটফ ফাংশনের অন্য ধারাটির কারণ হ'ল মানদণ্ডে মাপসই সমস্ত উপাদান সিএসভি ফাইলে একসাথে তালিকাভুক্ত হবে, সুতরাং সময় বাঁচানোর জন্য লুপটি ছেড়ে যাওয়ার পরে আমি লুপটি ছেড়ে যাই leave
আমার প্রশ্নগুলি হ'ল:
বড় ফাইলগুলির সাথে এটি কাজ করতে আমি কীভাবে পরিচালনা করতে পারি?
আমি কীভাবে আরও দ্রুত এটি তৈরি করতে পারি?
আমার কম্পিউটারে 8 জিবি র্যাম রয়েছে, যা 64 বিট উইন্ডোজ 7 চালাচ্ছে, এবং প্রসেসরটি 3.40 গিগাহার্টজ (আপনার কোন তথ্য প্রয়োজন তা নির্দিষ্ট নয়)।