folgende Situation. Über einen XML Gatway werden mehrere tausend XML-Dateien abgefragt. Diese werden dann mit SAX verarbeitet. Dafür muss ich die Dateien kurz zwischenspeichern. Mittels mkstemp erzeuge ich mir das File, speichere die Daten und lösche die Datei wieder. Trotzdem kommt nach einiger Zeit der Fehler "too many open files". Der Nachfolgende Code ist beispielhaft (die Schleife gibt es sonst nicht), illustriert aber mein Problem:
Code: Alles auswählen
#/usr/bin/env python
import tempfile
import os
import time
for i in range(1,1025):
__, tmp_name = tempfile.mkstemp()
with open(tmp_name, 'wb') as f:
f.write("Hello World")
#sax.parse(tmp_name, ContentHandler())
os.remove(tmp_name)
time.sleep(1)
Code: Alles auswählen
#/usr/bin/env python
import tempfile
import os
import time
for i in range(1,1025):
outfd, tmp_name = tempfile.mkstemp()
outsock = os.fdopen(outfd, 'wb')
outsock.write("Hello World")
outsock.close()
#sax.parse(tmp_name, ContentHandler())
os.remove(tmp_name)
time.sleep(1)
Grüße