在我的Linux机器上,
ulimit -n
命令返回 1024
。以下是相关代码: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
的类型只是 int
和 str
,因此我不确定如何关闭我打开的每个文件。如何关闭从tempfile.mkstemp打开的文件?