2016-03-23 12 views
3

Python "Python bellek hatası" nda bellekte sorun yaşıyorum.Python bellek hatası ile f.read

with open('xxxx.bson','rb') as f: 
    data = bson.decode_all(f.read()) 

hata iletisi:

data = bson.decode_all(f.read()) 
MemoryError 

herhangi bir yardım için teşekkür ederim size

+4

dosya ne kadar büyük: – Carpetsmoker

+0

Dosya çok büyükse hattan sonra satırı tarayabilirsiniz: 'f satırında' – Matthias

+0

Çok teşekkür ederim. –

cevap

1

Sen hafızayı azaltabilir sağlayabilir Aslında, bu komut dosyası kullanılarak büyük .bson dosyadan veri kurtarmayı denemek decode_file_iter'a geçerek tüketim, 1) giriş olarak bir dosya (içeriği değil) gerektirir ve 2) bir jeneratör döndürür. https://github.com/bauman/python-bson-streaming

from bsonstream import KeyValueBSONInput 
f = open("xxxx.bson", 'rb') 
stream = KeyValueBSONInput(fh=f) 
for dict_data in stream: 
    print dict_data 
f.close() 
0

Ben bu kütüphane kullanımı? Sanırım büyük bir dosya (sisteminizin mevcut hafızasından daha büyük)? Şu anda hafızada * tüm * dosyaları * okuyorsunuz * iki kez * (bir kez ham veriler için ve bir kez de kodu çözülen veriler için).
+0

Çok teşekkür ederim, sorun değil. –