在我的機器上Linux機器ulimit -n
給出1024
。此代碼:如何關閉tempfile.mkstemp中的文件?
from tempfile import mkstemp
for n in xrange(1024 + 1):
f, path = mkstemp()
失敗,在與最後一行循環:
Traceback (most recent call last):
File "utest.py", line 4, in <module>
File "/usr/lib/python2.7/tempfile.py", line 300, in mkstemp
File "/usr/lib/python2.7/tempfile.py", line 235, in _mkstemp_inner
OSError: [Errno 24] Too many open files: '/tmp/tmpc5W3CF'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
ImportError: No module named fileutils
好像我已經打開了許多文件 - 但f
和path
的type
只是int
和str
所以我我不知道如何關閉我打開的每個文件。 如何關閉tempfile.mkstemp中的文件?
只是解釋了一下。 mkstemp()返回一個unix文件描述符,所以你需要使用fdopen打開它或使用os關閉函數:os.close() – turtlebender 2012-03-30 13:48:59
謝謝,@turtlebender。 – unutbu 2012-03-30 13:49:35