Ich versuche, ein Wörterbuch in Pickle-Format zu entleeren, mit "Dump" -Befehl in Python zur Verfügung gestellt. Die Dateigröße des Wörterbuchs beträgt ungefähr 150 MB, aber eine Ausnahme tritt auf, wenn nur 115 MB der Datei ausgegeben werden. Die Ausnahme ist:MemoryError beim Picken von Daten in Python
Traceback (most recent call last):
File "C:\Python27\generate_traffic_pattern.py", line 32, in <module>
b.dump_data(way_id_data,'way_id_data.pickle')
File "C:\Python27\class_dump_load_data.py", line 8, in dump_data
pickle.dump(data,saved_file)
File "C:\Python27\lib\pickle.py", line 1370, in dump
Pickler(file, protocol).dump(obj)
File "C:\Python27\lib\pickle.py", line 224, in dump
self.save(obj)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\pickle.py", line 649, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Python27\lib\pickle.py", line 663, in _batch_setitems
save(v)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\pickle.py", line 600, in save_list
self._batch_appends(iter(obj))
File "C:\Python27\lib\pickle.py", line 615, in _batch_appends
save(x)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\pickle.py", line 599, in save_list
self.memoize(obj)
File "C:\Python27\lib\pickle.py", line 247, in memoize
self.memo[id(obj)] = memo_len, obj
MemoryError
Ich bin wirklich verwirrt, da mein gleicher Code früher gut funktionierte.
Dies ist nicht spezifisch für Pickle. Python fordert mehr Speicher vom Betriebssystem an, um weitere Objekte zu speichern, und das Betriebssystem teilte Python mit, dass für den Prozess kein Speicher mehr verfügbar ist. Dieser Fehler könnte überall in Ihrem Code aufgetreten sein. –
Um den Code zu testen, habe ich sogar versucht, die gleiche Pickle-Datei zu laden (die ich schon früher abgelegt habe) und dann versucht habe, sie erneut zu löschen, und seltsamerweise bekomme ich dieselbe Ausnahme. – tanzil
Wie behebe ich dieses Problem? Und wie es früher funktioniert hat? – tanzil