<p>在我的机器上,Linux机器<code>ulimit -n</code>给出<code>1024</code>。此代码:</p>
<pre><code>from tempfile import mkstemp
for n in xrange(1024 + 1):
f, path = mkstemp()
</code></pre>
<p>最后一行循环失败,原因是:</p>
<pre><code>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
</code></pre>
<p>我好像打开了很多文件,但是<code>f</code>和<code>path</code>的<code>type</code>只是<code>int</code>和<code>str</code>所以我不知道如何关闭我打开的每个文件。<strong>如何关闭tempfile.mkstemp中的文件?</strong></p>