Estoy trabajando con matrices grandes, entonces estoy usando el memmap de NumPy. Sin embargo, recibo un error ya que aparentemente los descriptores de archivos utilizados por memmap no se están cerrando.NumPy y memmap: [Errno 24] Demasiados archivos abiertos
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)
Por lo que entiendo, el archivo memmap se cierra cuando se llama al método close(). Sin embargo, el código anterior no puede bucle infinito, ya que finalmente lanza el "[24] Errno Demasiados archivos abiertos" 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
¿Alguien sabe lo que estoy pasando por alto?
Ayuda. Está funcionando ahora. Gracias. – plok