Sto lavorando con grandi matrici, quindi sto usando la memmap di NumPy. Tuttavia, sto ricevendo un errore in quanto apparentemente i descrittori di file usati da memmap non vengono chiusi.NumPy e memmap: [Errno 24] Troppi file aperti
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)
Da quello che ho capito, il file memmap viene chiuso quando viene chiamato il metodo close(). Tuttavia, il codice di cui sopra non può ciclo per sempre, in quanto alla fine getta il "[24] Errno Troppi file aperti" errore:
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
Qualcuno sa quello che sto sottovalutando?
Aiuta. Sta lavorando adesso. Grazie. – plok