首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何关闭tempfile.mkstemp中的文件?

如何关闭tempfile.mkstemp中的文件?
EN

Stack Overflow用户
提问于 2012-03-30 21:40:47
回答 3查看 14K关注 0票数 29

在我的机器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

看起来我打开了很多文件--但是fpathtype仅仅是intstr,所以我不知道如何关闭我打开的每个文件。如何关闭tempfile.mkstemp中的文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-30 21:47:03

import tempfile
import os
for idx in xrange(1024 + 1):
    outfd, outsock_path = tempfile.mkstemp()
    outsock = os.fdopen(outfd,'w')
    outsock.close()
票数 17
EN

Stack Overflow用户

发布于 2012-03-30 21:48:00

由于mkstemp()返回原始文件描述符,因此可以使用os.close()

import os
from tempfile import mkstemp

for n in xrange(1024 + 1):
    f, path = mkstemp()
    # Do something with 'f'...
    os.close(f)
票数 32
EN

Stack Overflow用户

发布于 2012-03-30 21:48:54

使用os.close()关闭文件描述符:

import os
from tempfile import mkstemp

# Open a file
fd, path = mkstemp()  

# Close opened file
os.close( fd )
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9944135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档