NumPy und memmap: [Errno 24] Zu viele offene Dateien
Ich arbeite mit großen Matrizen und verwende daher NumPys Memmap. Ich erhalte jedoch eine Fehlermeldung, da die von memmap verwendeten Dateideskriptoren anscheinend nicht geschlossen werden.
import numpy
import tempfile
counter = 0
while True:
temp_fd, temporary_filename = tempfile.mkstemp(suffix='.memmap')
map = numpy.memmap(temporary_filename, dtype=float, mode="w+", shape=1000)
counter += 1
print counter
map.close()
os.remove(temporary_filename)
Soweit ich weiß, wird die memmap-Datei geschlossen, wenn die Methode close () aufgerufen wird. Der obige Code kann jedoch nicht für immer wiederholt werden, da er schließlich die "[Errno 24] Zu viele offene Dateien" Error:
1016
1017
1018
1019
Traceback (most recent call last):
File "./memmap_loop.py", line 11, in <module>
File "/usr/lib/python2.5/site-packages/numpy/core/memmap.py", line 226, in __new__
EnvironmentError: [Errno 24] Too many open files
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/apport_python_hook.py", line 38, in apport_excepthook
ImportError: No module named packaging_impl
Original exception was:
Traceback (most recent call last):
File "./memmap_loop.py", line 11, in <module>
File "/usr/lib/python2.5/site-packages/numpy/core/memmap.py", line 226, in __new__
EnvironmentError: [Errno 24] Too many open files
Weiß jemand, was ich übersehen habe?