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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage