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

标签 python ulimit

在我的机器上,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 中的文件?

最佳答案

由于 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)

关于python - 如何关闭 tempfile.mkstemp 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9944135/

相关文章:

JavaScript 文件未加载到 Django 自定义管理页面中

python - 将 Python 最小化到系统托盘并生成通知?

c - 使用 system() 函数运行 ulimit -d

sockets - Javamail不会在超时时完全关闭套接字

c++ - LevelDB:IO 错误:XXX.sst:打开的文件太多

Python 网页抓取教程。连接MySQL数据库问题

Python Numpy - 复数 - 是否有极坐标到矩形转换的函数?

python - 模拟 ec2.describe_regions() (AWS) 的代理

linux - 文件描述符限制更新失败

ubuntu - 将 ulimit 设置得非常高有什么缺点吗?