HI ich habe ein Programm mit Python geschrieben, und wenn ich zu viele tempfile öffne, bekomme ich eine Ausnahme: Too many open files ... Dann finde ich heraus, dass Windows OS oder C-Laufzeit hat die Datei-Handle-Limits, so, ich mein Programm mit StringIO() ändern, aber immer noch nicht wissen, ob StringIO auch begrenzt ist?
Antwort
Zu viele Anzeigen?Pythons StringIO verwendet keine OS-Dateigriffe und ist daher nicht auf die gleiche Weise eingeschränkt. StringIO wird durch den verfügbaren virtuellen Speicher begrenzt, aber Sie haben wahrscheinlich haufenweise verfügbaren Speicher.
Normalerweise lässt das Betriebssystem zu, dass ein einzelner Prozess Tausende von Dateien öffnet, bevor er an die Grenze stößt. Wenn Ihr Programm also keine Datei-Handles mehr hat, vergessen Sie vielleicht, sie zu schließen. Es sei denn, Sie haben die Absicht, Tausende von Dateien zu öffnen, und die Handles sind Ihnen wirklich ausgegangen.