Auf meiner Maschine Linux-Maschine ulimit -n
gibt 1024
. Dieser Code:Wie schließe ich die Dateien von tempfile.mkstemp?
from tempfile import mkstemp
for n in xrange(1024 + 1):
f, path = mkstemp()
nicht in der letzten Zeile Schleife mit:
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
Es scheint, wie ich zu viele Dateien geöffnet haben - aber die type
von f
und path
sind einfach int
und str
so ich bin mir nicht sicher, wie ich jede geöffnete Datei schließe. Wie schließe ich die Dateien von tempfile.mkstemp?
nur ein bisschen zu erklären. mkstemp() gibt einen Unix-Dateideskriptor zurück, damit Sie damit arbeiten können, müssen Sie ihn entweder mit fdopen öffnen oder die os close-Funktion verwenden: os.close() – turtlebender
Danke, @turtlebender. – unutbu