Как закрыть файлы из tempfile.mkstemp?

На моей машине 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 

Кажется, что я открыл для многих файлов, но type f и path – просто int и str поэтому я не уверен, как закрыть каждый файл, который я открыл. Как закрыть файлы из tempfile.mkstemp?

    3 Solutions collect form web for “Как закрыть файлы из tempfile.mkstemp?”

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

    Поскольку 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) 

    Используйте os.close() чтобы закрыть дескриптор файла:

     import os from tempfile import mkstemp # Open a file fd, path = mkstemp() # Close opened file os.close( fd ) 
     
    Interesting Posts for Van-Lav

    добавление подзаголовка к графику matplotlib

    Регулярное выражение Python, соответствующее нескольким строкам (re.DOTALL)

    что было бы быстрым способом прочитать файл свойств в python?

    ReadProcessMemory с ctypes

    Можете ли вы определить псевдонимы для импортированных модулей в Python?

    Управление несколькими файлами settings.py

    Каков предпочтительный традиционный способ включения сторонней библиотеки в проекты с открытым исходным кодом на Python?

    Python Excel (xlrd, xlwt) – Как скопировать стиль из одной ячейки и поместить его на другой

    "Необязательная функция не реализована (106) (SQLBindParameter)" ошибка с pyodbc

    Python – Когда вы можете передать позиционный аргумент по имени, а когда вы не можете?

    python dict.add_by_value (dict_2)?

    E731 не назначают лямбда-выражение, используйте def

    Установите радиальную ось на полярных участках Matplotlib

    Изменить значок при изменении состояния с помощью таблицы стилей Qt

    Улучшить pandas (PyTables?) Производительность записи таблицы HDF5

    Python - лучший язык программирования в мире.