Şu anda Python 2.7'deki .csv dosyalarından 1 milyona kadar satır ve 200 sütundan (dosyalar 100mb ile 1.6gb arasında değişir) veri okumaya çalışıyorum. Bunu (çok yavaş) dosyalar için yapabilirim. 300.000 satırın altında, ancak bunun üstüne çıktığımda bellek hataları alıyorum.Kodum şuna benziyor:
def getdata(dosyaadı, ölçüt): data=[] ölçütteki ölçüt için: veri. append(getstuff(filename, criteron)) veriyi döndür def gettuff(filename, kriter): csv data=[] open(filename, "rb") ile csvfile olarak içe aktar: datareader'daki satır için datareader=csv.reader(csvfile): if satır[3]=="sütun başlığı": data.append(satır) elif len(data)<2 ve satır[3]!=ölçüt: elif satırını geçir[3]==ölçüt: data.append(satır ) else: return data
gettuff işlevindeki else yan tümcesinin nedeni, kritere uyan tüm öğelerin csv dosyasında birlikte listelenmesidir, bu nedenle döngüden çıkarken Zaman kazanmak için onları geçiyorum.
Sorularım:
Nasıl alabilirim? bunun daha büyük dosyalarla çalışması için mi?
Daha hızlı hale getirmemin bir yolu var mı?
Bilgisayarımda 8 GB RAM, 64 bit Windows 7 çalıştırıyor ve işlemci 3,40 GHz'dir (hangi bilgilere ihtiyacınız olduğundan emin değilsiniz).