Tôi đang làm việc với các ma trận lớn, vì vậy tôi đang sử dụng bản ghi nhớ của NumPy. Tuy nhiên, tôi nhận được một lỗi như là rõ ràng các mô tả tập tin được sử dụng bởi memmap không được đóng lại.NumPy và memmap: [Errno 24] Quá nhiều tệp đang mở
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)
Từ những gì tôi hiểu, tệp memmap được đóng khi phương thức close() được gọi. Tuy nhiên, các mã trên có thể không lặp mãi mãi, vì nó cuối cùng ném "[Errno 24] Quá nhiều tập tin mở" lỗi:
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
Không ai biết những gì tôi đang nhìn ra?
Nó giúp. Nó đang làm việc bây giờ. Cảm ơn. – plok